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/.keepalive b/.github/.keepalive deleted file mode 100644 index 310b4a9..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2026-08-17T03:09:46.152Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index d599315..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/some) 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 17d9f03..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/some) 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 861f214..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: '58 22 * * 4' - - # 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 + + ```
@@ -189,7 +180,7 @@ console.log( out ); ## Notice -This package is part of [stdlib][stdlib], a standard library for JavaScript and Node.js, with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. +This package is part of [stdlib][stdlib], a standard library with an emphasis on numerical and scientific computing. The library provides a collection of robust, high performance libraries for mathematics, statistics, streams, utilities, and more. For more information on the project, filing bug reports and feature requests, and guidance on how to develop [stdlib][stdlib], see the main project [repository][stdlib]. 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/benchmark/benchmark.10d_blocked_columnmajor.js b/benchmark/benchmark.10d_blocked_columnmajor.js deleted file mode 100644 index 57c991b..0000000 --- a/benchmark/benchmark.10d_blocked_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/10d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/10.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 9 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.10d_blocked_rowmajor.js b/benchmark/benchmark.10d_blocked_rowmajor.js deleted file mode 100644 index 29f74d5..0000000 --- a/benchmark/benchmark.10d_blocked_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/10d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/10.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 9 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.10d_columnmajor.js b/benchmark/benchmark.10d_columnmajor.js deleted file mode 100644 index cc56996..0000000 --- a/benchmark/benchmark.10d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/10d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/10.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 9 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.10d_rowmajor.js b/benchmark/benchmark.10d_rowmajor.js deleted file mode 100644 index cdf5bac..0000000 --- a/benchmark/benchmark.10d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/10d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/10.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 9 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.11d_columnmajor.js b/benchmark/benchmark.11d_columnmajor.js deleted file mode 100644 index cbf3b1b..0000000 --- a/benchmark/benchmark.11d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/nd.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/11.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 10 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.11d_rowmajor.js b/benchmark/benchmark.11d_rowmajor.js deleted file mode 100644 index 462d2cc..0000000 --- a/benchmark/benchmark.11d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/nd.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/11.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 10 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.1d_columnmajor.js b/benchmark/benchmark.1d_columnmajor.js deleted file mode 100644 index 56f7b6f..0000000 --- a/benchmark/benchmark.1d_columnmajor.js +++ /dev/null @@ -1,129 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - var n; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - n = scalar2ndarray( len, { - 'dtype': 'generic', - 'order': order - }); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( [ x, n ] ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.1d_rowmajor.js b/benchmark/benchmark.1d_rowmajor.js deleted file mode 100644 index e0dbf22..0000000 --- a/benchmark/benchmark.1d_rowmajor.js +++ /dev/null @@ -1,129 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - var n; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - n = scalar2ndarray( len, { - 'dtype': 'generic', - 'order': order - }); - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( [ x, n ] ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.2d_blocked_columnmajor.js b/benchmark/benchmark.2d_blocked_columnmajor.js deleted file mode 100644 index 445f5b3..0000000 --- a/benchmark/benchmark.2d_blocked_columnmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var sqrt = require( '@stdlib/math-base-special-sqrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/2d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( sqrt( len ) ); - sh = [ len, len ]; - len *= len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.2d_blocked_rowmajor.js b/benchmark/benchmark.2d_blocked_rowmajor.js deleted file mode 100644 index 583dbf2..0000000 --- a/benchmark/benchmark.2d_blocked_rowmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var sqrt = require( '@stdlib/math-base-special-sqrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/2d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( sqrt( len ) ); - sh = [ len, len ]; - len *= len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.2d_columnmajor.js b/benchmark/benchmark.2d_columnmajor.js deleted file mode 100644 index f2a8745..0000000 --- a/benchmark/benchmark.2d_columnmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var sqrt = require( '@stdlib/math-base-special-sqrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/2d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( sqrt( len ) ); - sh = [ len, len ]; - len *= len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.2d_rowmajor.js b/benchmark/benchmark.2d_rowmajor.js deleted file mode 100644 index ef59186..0000000 --- a/benchmark/benchmark.2d_rowmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var sqrt = require( '@stdlib/math-base-special-sqrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/2d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( sqrt( len ) ); - sh = [ len, len ]; - len *= len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.2d_rowmajor_accessors.js b/benchmark/benchmark.2d_rowmajor_accessors.js deleted file mode 100644 index ae2b1ea..0000000 --- a/benchmark/benchmark.2d_rowmajor_accessors.js +++ /dev/null @@ -1,161 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var sqrt = require( '@stdlib/math-base-special-sqrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/2d_accessors.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Returns an array data buffer element. -* -* @private -* @param {Collection} buf - data buffer -* @param {NonNegativeInteger} idx - element index -* @returns {*} element -*/ -function get( buf, idx ) { - return buf[ idx ]; -} - -/** -* Sets an array data buffer element. -* -* @private -* @param {Collection} buf - data buffer -* @param {NonNegativeInteger} idx - element index -* @param {*} value - value to set -*/ -function set( buf, idx, value ) { - buf[ idx ] = value; -} - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order, - 'accessorProtocol': true, - 'accessors': [ get, set ] - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::accessors:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::accessors:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( sqrt( len ) ); - sh = [ len, len ]; - len *= len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::accessors:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.2d_rowmajor_accessors_complex.js b/benchmark/benchmark.2d_rowmajor_accessors_complex.js deleted file mode 100644 index cfa5c74..0000000 --- a/benchmark/benchmark.2d_rowmajor_accessors_complex.js +++ /dev/null @@ -1,163 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var sqrt = require( '@stdlib/math-base-special-sqrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var ctors = require( '@stdlib/array-typed-complex-ctors' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/2d_accessors.js' ); - - -// VARIABLES // - -var types = [ 'complex64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Returns an array data buffer element. -* -* @private -* @param {Collection} buf - data buffer -* @param {NonNegativeInteger} idx - element index -* @returns {*} element -*/ -function get( buf, idx ) { - return buf.get( idx ); -} - -/** -* Sets an array data buffer element. -* -* @private -* @param {Collection} buf - data buffer -* @param {NonNegativeInteger} idx - element index -* @param {*} value - value to set -*/ -function set( buf, idx, value ) { - buf.set( value, idx ); -} - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var xbuf; - var x; - - xbuf = discreteUniform( len*2, 1, 100 ); - x = { - 'dtype': xtype, - 'data': new ( ctors( xtype ) )( xbuf.buffer ), - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order, - 'accessorProtocol': true, - 'accessors': [ get, set ] - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len*2 ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 5; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::accessors:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::accessors:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( sqrt( len ) ); - sh = [ len, len ]; - len *= len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::accessors:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.3d_blocked_columnmajor.js b/benchmark/benchmark.3d_blocked_columnmajor.js deleted file mode 100644 index 0688919..0000000 --- a/benchmark/benchmark.3d_blocked_columnmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var cbrt = require( '@stdlib/math-base-special-cbrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/3d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( cbrt( len ) ); - sh = [ len, len, len ]; - len *= len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.3d_blocked_rowmajor.js b/benchmark/benchmark.3d_blocked_rowmajor.js deleted file mode 100644 index ee0247d..0000000 --- a/benchmark/benchmark.3d_blocked_rowmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var cbrt = require( '@stdlib/math-base-special-cbrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/3d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( cbrt( len ) ); - sh = [ len, len, len ]; - len *= len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.3d_columnmajor.js b/benchmark/benchmark.3d_columnmajor.js deleted file mode 100644 index fda878d..0000000 --- a/benchmark/benchmark.3d_columnmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var cbrt = require( '@stdlib/math-base-special-cbrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/3d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( cbrt( len ) ); - sh = [ len, len, len ]; - len *= len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.3d_rowmajor.js b/benchmark/benchmark.3d_rowmajor.js deleted file mode 100644 index d5d1403..0000000 --- a/benchmark/benchmark.3d_rowmajor.js +++ /dev/null @@ -1,135 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var cbrt = require( '@stdlib/math-base-special-cbrt' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/3d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( cbrt( len ) ); - sh = [ len, len, len ]; - len *= len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.4d_blocked_columnmajor.js b/benchmark/benchmark.4d_blocked_columnmajor.js deleted file mode 100644 index 54dbc86..0000000 --- a/benchmark/benchmark.4d_blocked_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/4d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/4.0 ) ); - sh = [ len, len, len, len ]; - len *= len * len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.4d_blocked_rowmajor.js b/benchmark/benchmark.4d_blocked_rowmajor.js deleted file mode 100644 index aa4e286..0000000 --- a/benchmark/benchmark.4d_blocked_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/4d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/4.0 ) ); - sh = [ len, len, len, len ]; - len *= len * len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.4d_columnmajor.js b/benchmark/benchmark.4d_columnmajor.js deleted file mode 100644 index 88e7e60..0000000 --- a/benchmark/benchmark.4d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/4d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/4.0 ) ); - sh = [ len, len, len, len ]; - len *= len * len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.4d_rowmajor.js b/benchmark/benchmark.4d_rowmajor.js deleted file mode 100644 index c408692..0000000 --- a/benchmark/benchmark.4d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/4d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/4.0 ) ); - sh = [ len, len, len, len ]; - len *= len * len * len; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.5d_blocked_columnmajor.js b/benchmark/benchmark.5d_blocked_columnmajor.js deleted file mode 100644 index a96e4df..0000000 --- a/benchmark/benchmark.5d_blocked_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/5d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/5.0 ) ); - sh = [ len, len, len, len, len ]; - len *= pow( len, 4 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.5d_blocked_rowmajor.js b/benchmark/benchmark.5d_blocked_rowmajor.js deleted file mode 100644 index a95188f..0000000 --- a/benchmark/benchmark.5d_blocked_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/5d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/5.0 ) ); - sh = [ len, len, len, len, len ]; - len *= pow( len, 4 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.5d_columnmajor.js b/benchmark/benchmark.5d_columnmajor.js deleted file mode 100644 index 7de5ee5..0000000 --- a/benchmark/benchmark.5d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/5d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/5.0 ) ); - sh = [ len, len, len, len, len ]; - len *= pow( len, 4 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.5d_rowmajor.js b/benchmark/benchmark.5d_rowmajor.js deleted file mode 100644 index 1403f6c..0000000 --- a/benchmark/benchmark.5d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/5d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/5.0 ) ); - sh = [ len, len, len, len, len ]; - len *= pow( len, 4 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.6d_blocked_columnmajor.js b/benchmark/benchmark.6d_blocked_columnmajor.js deleted file mode 100644 index d1b5def..0000000 --- a/benchmark/benchmark.6d_blocked_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/6d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/6.0 ) ); - sh = [ len, len, len, len, len, len ]; - len *= pow( len, 5 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.6d_blocked_rowmajor.js b/benchmark/benchmark.6d_blocked_rowmajor.js deleted file mode 100644 index db5c144..0000000 --- a/benchmark/benchmark.6d_blocked_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/6d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/6.0 ) ); - sh = [ len, len, len, len, len, len ]; - len *= pow( len, 5 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.6d_columnmajor.js b/benchmark/benchmark.6d_columnmajor.js deleted file mode 100644 index 8d86a70..0000000 --- a/benchmark/benchmark.6d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/6d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/6.0 ) ); - sh = [ len, len, len, len, len, len ]; - len *= pow( len, 5 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.6d_rowmajor.js b/benchmark/benchmark.6d_rowmajor.js deleted file mode 100644 index 961ac13..0000000 --- a/benchmark/benchmark.6d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/6d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/6.0 ) ); - sh = [ len, len, len, len, len, len ]; - len *= pow( len, 5 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.7d_blocked_columnmajor.js b/benchmark/benchmark.7d_blocked_columnmajor.js deleted file mode 100644 index e19250c..0000000 --- a/benchmark/benchmark.7d_blocked_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/7d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/7.0 ) ); - sh = [ len, len, len, len, len, len, len ]; - len *= pow( len, 6 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.7d_blocked_rowmajor.js b/benchmark/benchmark.7d_blocked_rowmajor.js deleted file mode 100644 index 3f580a3..0000000 --- a/benchmark/benchmark.7d_blocked_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/7d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/7.0 ) ); - sh = [ len, len, len, len, len, len, len ]; - len *= pow( len, 6 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.7d_columnmajor.js b/benchmark/benchmark.7d_columnmajor.js deleted file mode 100644 index 6efe4f9..0000000 --- a/benchmark/benchmark.7d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/7d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/7.0 ) ); - sh = [ len, len, len, len, len, len, len ]; - len *= pow( len, 6 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.7d_rowmajor.js b/benchmark/benchmark.7d_rowmajor.js deleted file mode 100644 index 842febe..0000000 --- a/benchmark/benchmark.7d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/7d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/7.0 ) ); - sh = [ len, len, len, len, len, len, len ]; - len *= pow( len, 6 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.8d_blocked_columnmajor.js b/benchmark/benchmark.8d_blocked_columnmajor.js deleted file mode 100644 index 7f4cc6d..0000000 --- a/benchmark/benchmark.8d_blocked_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/8d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/8.0 ) ); - sh = [ len, len, len, len, len, len, len, len ]; - len *= pow( len, 7 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.8d_blocked_rowmajor.js b/benchmark/benchmark.8d_blocked_rowmajor.js deleted file mode 100644 index 7f4cc6d..0000000 --- a/benchmark/benchmark.8d_blocked_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/8d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/8.0 ) ); - sh = [ len, len, len, len, len, len, len, len ]; - len *= pow( len, 7 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.8d_columnmajor.js b/benchmark/benchmark.8d_columnmajor.js deleted file mode 100644 index 62d3da5..0000000 --- a/benchmark/benchmark.8d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/8d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/8.0 ) ); - sh = [ len, len, len, len, len, len, len, len ]; - len *= pow( len, 7 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.8d_rowmajor.js b/benchmark/benchmark.8d_rowmajor.js deleted file mode 100644 index b7fa586..0000000 --- a/benchmark/benchmark.8d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/8d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/8.0 ) ); - sh = [ len, len, len, len, len, len, len, len ]; - len *= pow( len, 7 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.9d_blocked_columnmajor.js b/benchmark/benchmark.9d_blocked_columnmajor.js deleted file mode 100644 index ff995a5..0000000 --- a/benchmark/benchmark.9d_blocked_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/9d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/9.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 8 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.9d_blocked_rowmajor.js b/benchmark/benchmark.9d_blocked_rowmajor.js deleted file mode 100644 index bef9898..0000000 --- a/benchmark/benchmark.9d_blocked_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/9d_blocked.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/9.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 8 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s::blocked:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.9d_columnmajor.js b/benchmark/benchmark.9d_columnmajor.js deleted file mode 100644 index 2221dda..0000000 --- a/benchmark/benchmark.9d_columnmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/9d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'column-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/9.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 8 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/benchmark/benchmark.9d_rowmajor.js b/benchmark/benchmark.9d_rowmajor.js deleted file mode 100644 index f01cad4..0000000 --- a/benchmark/benchmark.9d_rowmajor.js +++ /dev/null @@ -1,134 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var bench = require( '@stdlib/bench-harness' ); -var isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive; -var pow = require( '@stdlib/math-base-special-pow' ); -var floor = require( '@stdlib/math-base-special-floor' ); -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var format = require( '@stdlib/string-format' ); -var pkg = require( './../package.json' ).name; -var some = require( './../lib/9d.js' ); - - -// VARIABLES // - -var types = [ 'float64' ]; -var order = 'row-major'; - - -// FUNCTIONS // - -/** -* Creates a benchmark function. -* -* @private -* @param {PositiveInteger} len - ndarray length -* @param {NonNegativeIntegerArray} shape - ndarray shape -* @param {string} xtype - ndarray data type -* @returns {Function} benchmark function -*/ -function createBenchmark( len, shape, xtype ) { - var x; - - x = discreteUniform( len, 1, 100 ); - x = { - 'dtype': xtype, - 'data': x, - 'shape': shape, - 'strides': shape2strides( shape, order ), - 'offset': 0, - 'order': order - }; - return benchmark; - - /** - * Benchmark function. - * - * @private - * @param {Benchmark} b - benchmark instance - */ - function benchmark( b ) { - var out; - var i; - - b.tic(); - for ( i = 0; i < b.iterations; i++ ) { - out = some( x, len ); - if ( typeof out !== 'boolean' ) { - b.fail( 'should return a boolean' ); - } - } - b.toc(); - if ( !isBoolean( out ) ) { - b.fail( 'should return a boolean' ); - } - b.pass( 'benchmark finished' ); - b.end(); - } -} - - -// MAIN // - -/** -* Main execution sequence. -* -* @private -*/ -function main() { - var len; - var min; - var max; - var sh; - var t1; - var f; - var i; - var j; - - min = 1; // 10^min - max = 6; // 10^max - - for ( j = 0; j < types.length; j++ ) { - t1 = types[ j ]; - for ( i = min; i <= max; i++ ) { - len = pow( 10, i ); - - sh = [ len/2, 2, 1, 1, 1, 1, 1, 1, 1 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - sh = [ 1, 1, 1, 1, 1, 1, 1, 2, len/2 ]; - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - - len = floor( pow( len, 1.0/9.0 ) ); - sh = [ len, len, len, len, len, len, len, len, len ]; - len *= pow( len, 8 ); - f = createBenchmark( len, sh, t1 ); - bench( format( '%s:ndims=%d,len=%d,shape=[%s],xorder=%s,xtype=%s', pkg, sh.length, len, sh.join(','), order, t1 ), f ); - } - } -} - -main(); diff --git a/branches.md b/branches.md deleted file mode 100644 index 5f077a3..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/some" -%% click B href "https://github.com/stdlib-js/ndarray-base-some/tree/main" -%% click C href "https://github.com/stdlib-js/ndarray-base-some/tree/production" -%% click D href "https://github.com/stdlib-js/ndarray-base-some/tree/esm" -%% click E href "https://github.com/stdlib-js/ndarray-base-some/tree/deno" -%% click F href "https://github.com/stdlib-js/ndarray-base-some/tree/umd" -``` - -[stdlib-url]: https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/ndarray/base/some -[production-url]: https://github.com/stdlib-js/ndarray-base-some/tree/production -[deno-url]: https://github.com/stdlib-js/ndarray-base-some/tree/deno -[deno-readme]: https://github.com/stdlib-js/ndarray-base-some/blob/deno/README.md -[umd-url]: https://github.com/stdlib-js/ndarray-base-some/tree/umd -[umd-readme]: https://github.com/stdlib-js/ndarray-base-some/blob/umd/README.md -[esm-url]: https://github.com/stdlib-js/ndarray-base-some/tree/esm -[esm-readme]: https://github.com/stdlib-js/ndarray-base-some/blob/esm/README.md \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts deleted file mode 100644 index c22fc82..0000000 --- a/dist/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -/// -import some from '../docs/types/index'; -export = some; \ No newline at end of file diff --git a/dist/index.js b/dist/index.js deleted file mode 100644 index a9cd3c1..0000000 --- a/dist/index.js +++ /dev/null @@ -1,131 +0,0 @@ -"use strict";var V=function(a,D){return function(){try{return D||a((D={exports:{}}).exports,D),D.exports}catch(v){throw (D=0, v)}};};var xr=V(function(J0,ur){ -var Lv=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),wv=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Kv(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p;for(p=Lv(a.shape,a.strides),b=p.sh,d=p.sx,v=wv(a.dtype),o=a.offset,O=a.data,z=d[0],y=a.accessors[0],r=0,c=b[1];c>0;)for(c0;)for(i=D))return!0;s+=z}s+=h}return!1}ur.exports=Kv -});var cr=V(function(Q0,lr){ -var Xv=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Iv=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Rv(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q;for(q=Xv(a.shape,a.strides),e=q.sh,t=q.sx,v=Iv(a.dtype),n=a.offset,O=a.data,z=t[0],y=a.accessors[0],r=0,f=e[2];f>0;)for(f0;)for(m0;)for(x=D))return!0;i+=z}i+=h}i+=k}return!1}lr.exports=Rv -});var pr=V(function(T0,nr){ -var Nv=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Vv=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Fv(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E;for(E=Nv(a.shape,a.strides),o=E.sh,c=E.sx,v=Vv(a.dtype),p=a.offset,O=a.data,z=c[0],y=a.accessors[0],r=0,C=o[3];C>0;)for(C0;)for(g0;)for(j0;)for(S=D))return!0;l+=z}l+=h}l+=k}l+=b}return!1}nr.exports=Fv -});var br=V(function(U0,Sr){ -var Gv=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Hv=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Jv(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w;for(w=Gv(a.shape,a.strides),t=w.sh,x=w.sx,r=Hv(a.dtype),m=a.offset,O=a.data,z=x[0],y=a.accessors[0],v=0,B=t[4];B>0;)for(B0;)for(M0;)for(A0;)for(_0;)for(E=D))return!0;f+=z}f+=h}f+=k}f+=b}f+=u}return!1}Sr.exports=Jv -});var mr=V(function(W0,jr){ -var Qv=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Tv=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Uv(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F;for(F=Qv(a.shape,a.strides),i=F.sh,q=F.sx,r=Tv(a.dtype),S=a.offset,O=a.data,z=q[0],y=a.accessors[0],v=0,X=i[5];X>0;)for(X0;)for(K0;)for(L0;)for(P0;)for(w0;)for(B=D))return!0;j+=z}j+=h}j+=k}j+=b}j+=u}j+=e}return!1}jr.exports=Uv -});var hr=V(function(Y0,qr){ -var Wv=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Yv=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Zv(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H;for(H=Wv(a.shape,a.strides),p=H.sh,g=H.sx,r=Yv(a.dtype),C=a.offset,O=a.data,z=g[0],y=a.accessors[0],v=0,G=p[6];G>0;)for(G0;)for(R0;)for(I0;)for(N0;)for(F0;)for(X0;)for(K=D))return!0;E+=z}E+=h}E+=k}E+=b}E+=u}E+=e}E+=d}return!1}qr.exports=Zv -});var zr=V(function(Z0,kr){ -var $v=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),re=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function ae(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U,W;for(W=$v(a.shape,a.strides),x=W.sh,_=W.sx,r=re(a.dtype),A=a.offset,O=a.data,z=_[0],y=a.accessors[0],v=0,U=x[7];U>0;)for(U0;)for(T0;)for(Q0;)for(J0;)for(H0;)for(G0;)for(R0;)for(I=D))return!0;M+=z}M+=h}M+=k}M+=b}M+=u}M+=e}M+=d}M+=o}return!1}kr.exports=ae -});var yr=V(function($0,Or){ -var ve=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),ee=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function se(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U,W,Y,Z,$,rr,ar;for(ar=ve(a.shape,a.strides),f=ar.sh,B=ar.sx,r=ee(a.dtype),w=a.offset,O=a.data,z=B[0],y=a.accessors[0],v=0,rr=f[8];rr>0;)for(rr0;)for($0;)for(Z0;)for(Y0;)for(W0;)for(U0;)for(T0;)for(Q0;)for(J=D))return!0;P+=z}P+=h}P+=k}P+=b}P+=u}P+=e}P+=d}P+=o}P+=s}return!1}Or.exports=se -});var Er=V(function(ri,gr){ -var oe=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),ie=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function fe(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U,W,Y,Z,$,rr,ar,vr,er,sr,or,dr;for(dr=oe(a.shape,a.strides),S=dr.sh,L=dr.sx,r=ie(a.dtype),K=a.offset,O=a.data,z=L[0],y=a.accessors[0],v=0,or=S[9];or>0;)for(or0;)for(sr0;)for(er0;)for(vr0;)for(ar0;)for(rr0;)for($0;)for(Z0;)for(Y0;)for(W=D))return!0;X+=z}X+=h}X+=k}X+=b}X+=u}X+=e}X+=d}X+=o}X+=s}X+=t}return!1}gr.exports=fe -});var Cr=V(function(ai,Mr){ -var te=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),de=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function ue(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c;for(c=te(a.shape,a.strides),k=c.sh,e=c.sx,r=de(a.dtype),d=a.offset,O=a.data,y=e[0],v=0,i=k[1];i>0;)for(i0;)for(n=D))return!0;o+=y}o+=z}return!1}Mr.exports=ue -});var _r=V(function(vi,Pr){ -var xe=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),le=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function ce(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f;for(f=xe(a.shape,a.strides),u=f.sh,s=f.sx,r=le(a.dtype),t=a.offset,O=a.data,y=s[0],v=0,m=u[2];m>0;)for(m0;)for(x0;)for(l=D))return!0;n+=y}n+=z}n+=h}return!1}Pr.exports=ce -});var Br=V(function(ei,Dr){ -var ne=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),pe=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Se(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C;for(C=ne(a.shape,a.strides),d=C.sh,i=C.sx,v=pe(a.dtype),c=a.offset,O=a.data,y=i[0],r=0,g=d[3];g>0;)for(g0;)for(j0;)for(S0;)for(q=D))return!0;p+=y}p+=z}p+=h}p+=k}return!1}Dr.exports=Se -});var Lr=V(function(si,Ar){ -var be=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),je=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function me(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B;for(B=be(a.shape,a.strides),s=B.sh,l=B.sx,v=je(a.dtype),x=a.offset,O=a.data,y=l[0],r=0,M=s[4];M>0;)for(M0;)for(A0;)for(_0;)for(E0;)for(C=D))return!0;m+=y}m+=z}m+=h}m+=k}m+=b}return!1}Ar.exports=me -});var Kr=V(function(oi,wr){ -var qe=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),he=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function ke(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X;for(X=qe(a.shape,a.strides),n=X.sh,f=X.sx,r=he(a.dtype),q=a.offset,O=a.data,y=f[0],v=0,K=n[5];K>0;)for(K0;)for(L0;)for(P0;)for(w0;)for(B0;)for(M=D))return!0;S+=y}S+=z}S+=h}S+=k}S+=b}S+=u}return!1}wr.exports=ke -});var Ir=V(function(ii,Xr){ -var ze=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Oe=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function ye(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G;for(G=ze(a.shape,a.strides),c=G.sh,j=G.sx,r=Oe(a.dtype),g=a.offset,O=a.data,y=j[0],v=0,R=c[6];R>0;)for(R0;)for(I0;)for(N0;)for(F0;)for(X0;)for(K0;)for(L=D))return!0;C+=y}C+=z}C+=h}C+=k}C+=b}C+=u}C+=e}return!1}Xr.exports=ye -});var Nr=V(function(fi,Rr){ -var ge=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Ee=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Me(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U;for(U=ge(a.shape,a.strides),l=U.sh,E=U.sx,r=Ee(a.dtype),_=a.offset,O=a.data,y=E[0],v=0,T=l[7];T>0;)for(T0;)for(Q0;)for(J0;)for(H0;)for(G0;)for(R0;)for(I0;)for(N=D))return!0;A+=y}A+=z}A+=h}A+=k}A+=b}A+=u}A+=e}A+=d}return!1}Rr.exports=Me -});var Fr=V(function(ti,Vr){ -var Ce=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Pe=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function _e(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U,W,Y,Z,$,rr;for(rr=Ce(a.shape,a.strides),m=rr.sh,M=rr.sx,r=Pe(a.dtype),B=a.offset,O=a.data,y=M[0],v=0,$=m[8];$>0;)for($0;)for(Z0;)for(Y0;)for(W0;)for(U0;)for(T0;)for(Q0;)for(J0;)for(H=D))return!0;w+=y}w+=z}w+=h}w+=k}w+=b}w+=u}w+=e}w+=d}w+=o}return!1}Vr.exports=_e -});var Hr=V(function(di,Gr){ -var De=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Be=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Ae(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U,W,Y,Z,$,rr,ar,vr,er,sr,or;for(or=De(a.shape,a.strides),q=or.sh,P=or.sx,r=Be(a.dtype),L=a.offset,O=a.data,y=P[0],v=0,sr=q[9];sr>0;)for(sr0;)for(er0;)for(vr0;)for(ar0;)for(rr0;)for($0;)for(Z0;)for(Y0;)for(W0;)for(U=D))return!0;K+=y}K+=z}K+=h}K+=k}K+=b}K+=u}K+=e}K+=d}K+=o}K+=s}return!1}Gr.exports=Ae -});var Qr=V(function(ui,Jr){ -var Le=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),we=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Ke(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c;for(c=Le(a.shape,a.strides),k=c.sh,e=c.sx,v=we(a.dtype),d=a.offset,O=a.data,y=e[0],r=0,i=k[1];i>0;)for(i0;)for(n=D))return!0;o+=y}o+=z}return!1}Jr.exports=Ke -});var Ur=V(function(xi,Tr){ -var Xe=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Ie=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Re(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f;for(f=Xe(a.shape,a.strides),u=f.sh,s=f.sx,v=Ie(a.dtype),t=a.offset,O=a.data,y=s[0],r=0,m=u[2];m>0;)for(m0;)for(x0;)for(l=D))return!0;n+=y}n+=z}n+=h}return!1}Tr.exports=Re -});var Yr=V(function(li,Wr){ -var Ne=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Ve=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Fe(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C;for(C=Ne(a.shape,a.strides),d=C.sh,i=C.sx,v=Ve(a.dtype),c=a.offset,O=a.data,y=i[0],r=0,g=d[3];g>0;)for(g0;)for(j0;)for(S0;)for(q=D))return!0;p+=y}p+=z}p+=h}p+=k}return!1}Wr.exports=Fe -});var $r=V(function(ci,Zr){ -var Ge=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),He=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Je(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B;for(B=Ge(a.shape,a.strides),s=B.sh,l=B.sx,v=He(a.dtype),x=a.offset,O=a.data,y=l[0],r=0,M=s[4];M>0;)for(M0;)for(A0;)for(_0;)for(E0;)for(C=D))return!0;m+=y}m+=z}m+=h}m+=k}m+=b}return!1}Zr.exports=Je -});var aa=V(function(ni,ra){ -var Qe=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Te=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Ue(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X;for(X=Qe(a.shape,a.strides),n=X.sh,f=X.sx,r=Te(a.dtype),q=a.offset,O=a.data,y=f[0],v=0,K=n[5];K>0;)for(K0;)for(L0;)for(P0;)for(w0;)for(B0;)for(M=D))return!0;S+=y}S+=z}S+=h}S+=k}S+=b}S+=u}return!1}ra.exports=Ue -});var ea=V(function(pi,va){ -var We=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),Ye=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function Ze(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G;for(G=We(a.shape,a.strides),c=G.sh,j=G.sx,r=Ye(a.dtype),g=a.offset,O=a.data,y=j[0],v=0,R=c[6];R>0;)for(R0;)for(I0;)for(N0;)for(F0;)for(X0;)for(K0;)for(L=D))return!0;C+=y}C+=z}C+=h}C+=k}C+=b}C+=u}C+=e}return!1}va.exports=Ze -});var oa=V(function(Si,sa){ -var $e=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),rs=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function as(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U;for(U=$e(a.shape,a.strides),l=U.sh,E=U.sx,r=rs(a.dtype),_=a.offset,O=a.data,y=E[0],v=0,T=l[7];T>0;)for(T0;)for(Q0;)for(J0;)for(H0;)for(G0;)for(R0;)for(I0;)for(N=D))return!0;A+=y}A+=z}A+=h}A+=k}A+=b}A+=u}A+=e}A+=d}return!1}sa.exports=as -});var fa=V(function(bi,ia){ -var vs=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),es=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function ss(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U,W,Y,Z,$,rr;for(rr=vs(a.shape,a.strides),m=rr.sh,M=rr.sx,r=es(a.dtype),B=a.offset,O=a.data,y=M[0],v=0,$=m[8];$>0;)for($0;)for(Z0;)for(Y0;)for(W0;)for(U0;)for(T0;)for(Q0;)for(J0;)for(H=D))return!0;w+=y}w+=z}w+=h}w+=k}w+=b}w+=u}w+=e}w+=d}w+=o}return!1}ia.exports=ss -});var da=V(function(ji,ta){ -var os=require('@stdlib/ndarray-base-nullary-loop-interchange-order/dist'),is=require('@stdlib/ndarray-base-nullary-tiling-block-size/dist');function fs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K,X,F,N,I,R,G,H,J,Q,T,U,W,Y,Z,$,rr,ar,vr,er,sr,or;for(or=os(a.shape,a.strides),q=or.sh,P=or.sx,r=is(a.dtype),L=a.offset,O=a.data,y=P[0],v=0,sr=q[9];sr>0;)for(sr0;)for(er0;)for(vr0;)for(ar0;)for(rr0;)for($0;)for(Z0;)for(Y0;)for(W0;)for(U=D))return!0;K+=y}K+=z}K+=h}K+=k}K+=b}K+=u}K+=e}K+=d}K+=o}K+=s}return!1}ta.exports=fs -});var xa=V(function(mi,ua){ -function ts(a,D){return!!(D<=1&&a.accessors[0](a.data,a.offset))}ua.exports=ts -});var ca=V(function(qi,la){ -function ds(a,D){var v,r,O,y,z,h,k;for(z=a.shape[0],y=a.strides[0],h=a.offset,r=a.data,O=a.accessors[0],v=0,k=0;k=D))return!0;h+=y}return!1}la.exports=ds -});var pa=V(function(hi,na){ -var us=require('@stdlib/ndarray-base-strides2order/dist');function xs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o;for(h=a.shape,u=a.strides,us(u)===1?(k=h[1],b=h[0],y=u[1],z=u[0]-k*u[1]):(k=h[0],b=h[1],y=u[0],z=u[1]-k*u[0]),e=a.offset,r=a.data,O=a.accessors[0],v=0,o=0;o=D))return!0;e+=y}e+=z}return!1}na.exports=xs -});var ba=V(function(ki,Sa){ -var ls=require('@stdlib/ndarray-base-strides2order/dist');function cs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n;for(k=a.shape,d=a.strides,ls(d)===1?(b=k[2],u=k[1],e=k[0],y=d[2],z=d[1]-b*d[2],h=d[0]-u*d[1]):(b=k[0],u=k[1],e=k[2],y=d[0],z=d[1]-b*d[0],h=d[2]-u*d[1]),o=a.offset,r=a.data,O=a.accessors[0],v=0,n=0;n=D))return!0;o+=y}o+=z}o+=h}return!1}Sa.exports=cs -});var ma=V(function(zi,ja){ -var ns=require('@stdlib/ndarray-base-strides2order/dist');function ps(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p;for(b=a.shape,s=a.strides,ns(s)===1?(u=b[3],e=b[2],d=b[1],o=b[0],y=s[3],z=s[2]-u*s[3],h=s[1]-e*s[2],k=s[0]-d*s[1]):(u=b[0],e=b[1],d=b[2],o=b[3],y=s[0],z=s[1]-u*s[0],h=s[2]-e*s[1],k=s[3]-d*s[2]),t=a.offset,r=a.data,O=a.accessors[0],v=0,p=0;p=D))return!0;t+=y}t+=z}t+=h}t+=k}return!1}ja.exports=ps -});var ha=V(function(Oi,qa){ -var Ss=require('@stdlib/ndarray-base-strides2order/dist');function bs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m;for(u=a.shape,n=a.strides,Ss(n)===1?(e=u[4],d=u[3],o=u[2],s=u[1],t=u[0],y=n[4],z=n[3]-e*n[4],h=n[2]-d*n[3],k=n[1]-o*n[2],b=n[0]-s*n[1]):(e=u[0],d=u[1],o=u[2],s=u[3],t=u[4],y=n[0],z=n[1]-e*n[0],h=n[2]-d*n[1],k=n[3]-o*n[2],b=n[4]-s*n[3]),i=a.offset,r=a.data,O=a.accessors[0],v=0,m=0;m=D))return!0;i+=y}i+=z}i+=h}i+=k}i+=b}return!1}qa.exports=bs -});var za=V(function(yi,ka){ -var js=require('@stdlib/ndarray-base-strides2order/dist');function ms(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S;for(e=a.shape,c=a.strides,js(c)===1?(d=e[5],o=e[4],s=e[3],t=e[2],n=e[1],i=e[0],y=c[5],z=c[4]-d*c[5],h=c[3]-o*c[4],k=c[2]-s*c[3],b=c[1]-t*c[2],u=c[0]-n*c[1]):(d=e[0],o=e[1],s=e[2],t=e[3],n=e[4],i=e[5],y=c[0],z=c[1]-d*c[0],h=c[2]-o*c[1],k=c[3]-s*c[2],b=c[4]-t*c[3],u=c[5]-n*c[4]),p=a.offset,r=a.data,O=a.accessors[0],v=0,S=0;S=D))return!0;p+=y}p+=z}p+=h}p+=k}p+=b}p+=u}return!1}ka.exports=ms -});var ya=V(function(gi,Oa){ -var qs=require('@stdlib/ndarray-base-strides2order/dist');function hs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C;for(d=a.shape,l=a.strides,qs(l)===1?(o=d[6],s=d[5],t=d[4],n=d[3],i=d[2],c=d[1],p=d[0],y=l[6],z=l[5]-o*l[6],h=l[4]-s*l[5],k=l[3]-t*l[4],b=l[2]-n*l[3],u=l[1]-i*l[2],e=l[0]-c*l[1]):(o=d[0],s=d[1],t=d[2],n=d[3],i=d[4],c=d[5],p=d[6],y=l[0],z=l[1]-o*l[0],h=l[2]-s*l[1],k=l[3]-t*l[2],b=l[4]-n*l[3],u=l[5]-i*l[4],e=l[6]-c*l[5]),x=a.offset,r=a.data,O=a.accessors[0],v=0,C=0;C=D))return!0;x+=y}x+=z}x+=h}x+=k}x+=b}x+=u}x+=e}return!1}Oa.exports=hs -});var Ea=V(function(Ei,ga){ -var ks=require('@stdlib/ndarray-base-strides2order/dist');function zs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A;for(o=a.shape,m=a.strides,ks(m)===1?(s=o[7],t=o[6],n=o[5],i=o[4],c=o[3],p=o[2],l=o[1],x=o[0],y=m[7],z=m[6]-s*m[7],h=m[5]-t*m[6],k=m[4]-n*m[5],b=m[3]-i*m[4],u=m[2]-c*m[3],e=m[1]-p*m[2],d=m[0]-l*m[1]):(s=o[0],t=o[1],n=o[2],i=o[3],c=o[4],p=o[5],l=o[6],x=o[7],y=m[0],z=m[1]-s*m[0],h=m[2]-t*m[1],k=m[3]-n*m[2],b=m[4]-i*m[3],u=m[5]-c*m[4],e=m[6]-p*m[5],d=m[7]-l*m[6]),f=a.offset,r=a.data,O=a.accessors[0],v=0,A=0;A=D))return!0;f+=y}f+=z}f+=h}f+=k}f+=b}f+=u}f+=e}f+=d}return!1}ga.exports=zs -});var Ca=V(function(Mi,Ma){ -var Os=require('@stdlib/ndarray-base-strides2order/dist');function ys(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w;for(s=a.shape,q=a.strides,Os(q)===1?(t=s[8],n=s[7],i=s[6],c=s[5],p=s[4],l=s[3],x=s[2],m=s[1],f=s[0],y=q[8],z=q[7]-t*q[8],h=q[6]-n*q[7],k=q[5]-i*q[6],b=q[4]-c*q[5],u=q[3]-p*q[4],e=q[2]-l*q[3],d=q[1]-x*q[2],o=q[0]-m*q[1]):(t=s[0],n=s[1],i=s[2],c=s[3],p=s[4],l=s[5],x=s[6],m=s[7],f=s[8],y=q[0],z=q[1]-t*q[0],h=q[2]-n*q[1],k=q[3]-i*q[2],b=q[4]-c*q[3],u=q[5]-p*q[4],e=q[6]-l*q[5],d=q[7]-x*q[6],o=q[8]-m*q[7]),S=a.offset,r=a.data,O=a.accessors[0],v=0,w=0;w=D))return!0;S+=y}S+=z}S+=h}S+=k}S+=b}S+=u}S+=e}S+=d}S+=o}return!1}Ma.exports=ys -});var _a=V(function(Ci,Pa){ -var gs=require('@stdlib/ndarray-base-strides2order/dist');function Es(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L,K;for(t=a.shape,j=a.strides,gs(j)===1?(n=t[9],i=t[8],c=t[7],p=t[6],l=t[5],x=t[4],m=t[3],f=t[2],q=t[1],S=t[0],y=j[9],z=j[8]-n*j[9],h=j[7]-i*j[8],k=j[6]-c*j[7],b=j[5]-p*j[6],u=j[4]-l*j[5],e=j[3]-x*j[4],d=j[2]-m*j[3],o=j[1]-f*j[2],s=j[0]-q*j[1]):(n=t[0],i=t[1],c=t[2],p=t[3],l=t[4],x=t[5],m=t[6],f=t[7],q=t[8],S=t[9],y=j[0],z=j[1]-n*j[0],h=j[2]-i*j[1],k=j[3]-c*j[2],b=j[4]-p*j[3],u=j[5]-l*j[4],e=j[6]-x*j[5],d=j[7]-m*j[6],o=j[8]-f*j[7],s=j[9]-q*j[8]),g=a.offset,r=a.data,O=a.accessors[0],v=0,K=0;K=D))return!0;g+=y}g+=z}g+=h}g+=k}g+=b}g+=u}g+=e}g+=d}g+=o}g+=s}return!1}Pa.exports=Es -});var Ba=V(function(Pi,Da){ -var Ms=require('@stdlib/ndarray-base-numel/dist'),Cs=require('@stdlib/ndarray-base-vind2bind/dist'),Ps="throw";function _s(a,D){var v,r,O,y,z,h,k,b,u,e;for(h=a.shape,y=Ms(h),r=a.data,k=a.strides,b=a.offset,O=a.order,z=a.accessors[0],v=0,e=0;e=D))return!0;return!1}Da.exports=_s -});var La=V(function(_i,Aa){ -function Ds(a,D){return!!(D<=1&&(a.data[a.offset]||a.data[a.offset+1]))}Aa.exports=Ds -});var Ka=V(function(Di,wa){ -function Bs(a,D){var v,r,O,y,z,h;for(y=a.shape[0],O=a.strides[0],z=a.offset,r=a.data,v=0,h=0;h=D))return!0;z+=O}return!1}wa.exports=Bs -});var Ia=V(function(Bi,Xa){ -var As=require('@stdlib/ndarray-base-strides2order/dist');function Ls(a,D){var v,r,O,y,z,h,k,b,u,e,d;for(z=a.shape,b=a.strides,As(b)===1?(h=z[1],k=z[0],O=b[1],y=b[0]-h*b[1]):(h=z[0],k=z[1],O=b[0],y=b[1]-h*b[0]),u=a.offset,r=a.data,v=0,d=0;d=D))return!0;u+=O}u+=y}return!1}Xa.exports=Ls -});var Na=V(function(Ai,Ra){ -var ws=require('@stdlib/ndarray-base-strides2order/dist');function Ks(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t;for(h=a.shape,e=a.strides,ws(e)===1?(k=h[2],b=h[1],u=h[0],O=e[2],y=e[1]-k*e[2],z=e[0]-b*e[1]):(k=h[0],b=h[1],u=h[2],O=e[0],y=e[1]-k*e[0],z=e[2]-b*e[1]),d=a.offset,r=a.data,v=0,t=0;t=D))return!0;d+=O}d+=y}d+=z}return!1}Ra.exports=Ks -});var Fa=V(function(Li,Va){ -var Xs=require('@stdlib/ndarray-base-strides2order/dist');function Is(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c;for(k=a.shape,o=a.strides,Xs(o)===1?(b=k[3],u=k[2],e=k[1],d=k[0],O=o[3],y=o[2]-b*o[3],z=o[1]-u*o[2],h=o[0]-e*o[1]):(b=k[0],u=k[1],e=k[2],d=k[3],O=o[0],y=o[1]-b*o[0],z=o[2]-u*o[1],h=o[3]-e*o[2]),s=a.offset,r=a.data,v=0,c=0;c=D))return!0;s+=O}s+=y}s+=z}s+=h}return!1}Va.exports=Is -});var Ha=V(function(wi,Ga){ -var Rs=require('@stdlib/ndarray-base-strides2order/dist');function Ns(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x;for(b=a.shape,t=a.strides,Rs(t)===1?(u=b[4],e=b[3],d=b[2],o=b[1],s=b[0],O=t[4],y=t[3]-u*t[4],z=t[2]-e*t[3],h=t[1]-d*t[2],k=t[0]-o*t[1]):(u=b[0],e=b[1],d=b[2],o=b[3],s=b[4],O=t[0],y=t[1]-u*t[0],z=t[2]-e*t[1],h=t[3]-d*t[2],k=t[4]-o*t[3]),n=a.offset,r=a.data,v=0,x=0;x=D))return!0;n+=O}n+=y}n+=z}n+=h}n+=k}return!1}Ga.exports=Ns -});var Qa=V(function(Ki,Ja){ -var Vs=require('@stdlib/ndarray-base-strides2order/dist');function Fs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q;for(u=a.shape,i=a.strides,Vs(i)===1?(e=u[5],d=u[4],o=u[3],s=u[2],t=u[1],n=u[0],O=i[5],y=i[4]-e*i[5],z=i[3]-d*i[4],h=i[2]-o*i[3],k=i[1]-s*i[2],b=i[0]-t*i[1]):(e=u[0],d=u[1],o=u[2],s=u[3],t=u[4],n=u[5],O=i[0],y=i[1]-e*i[0],z=i[2]-d*i[1],h=i[3]-o*i[2],k=i[4]-s*i[3],b=i[5]-t*i[4]),c=a.offset,r=a.data,v=0,q=0;q=D))return!0;c+=O}c+=y}c+=z}c+=h}c+=k}c+=b}return!1}Ja.exports=Fs -});var Ua=V(function(Xi,Ta){ -var Gs=require('@stdlib/ndarray-base-strides2order/dist');function Hs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g;for(e=a.shape,p=a.strides,Gs(p)===1?(d=e[6],o=e[5],s=e[4],t=e[3],n=e[2],i=e[1],c=e[0],O=p[6],y=p[5]-d*p[6],z=p[4]-o*p[5],h=p[3]-s*p[4],k=p[2]-t*p[3],b=p[1]-n*p[2],u=p[0]-i*p[1]):(d=e[0],o=e[1],s=e[2],t=e[3],n=e[4],i=e[5],c=e[6],O=p[0],y=p[1]-d*p[0],z=p[2]-o*p[1],h=p[3]-s*p[2],k=p[4]-t*p[3],b=p[5]-n*p[4],u=p[6]-i*p[5]),l=a.offset,r=a.data,v=0,g=0;g=D))return!0;l+=O}l+=y}l+=z}l+=h}l+=k}l+=b}l+=u}return!1}Ta.exports=Hs -});var Ya=V(function(Ii,Wa){ -var Js=require('@stdlib/ndarray-base-strides2order/dist');function Qs(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_;for(d=a.shape,x=a.strides,Js(x)===1?(o=d[7],s=d[6],t=d[5],n=d[4],i=d[3],c=d[2],p=d[1],l=d[0],O=x[7],y=x[6]-o*x[7],z=x[5]-s*x[6],h=x[4]-t*x[5],k=x[3]-n*x[4],b=x[2]-i*x[3],u=x[1]-c*x[2],e=x[0]-p*x[1]):(o=d[0],s=d[1],t=d[2],n=d[3],i=d[4],c=d[5],p=d[6],l=d[7],O=x[0],y=x[1]-o*x[0],z=x[2]-s*x[1],h=x[3]-t*x[2],k=x[4]-n*x[3],b=x[5]-i*x[4],u=x[6]-c*x[5],e=x[7]-p*x[6]),m=a.offset,r=a.data,v=0,_=0;_=D))return!0;m+=O}m+=y}m+=z}m+=h}m+=k}m+=b}m+=u}m+=e}return!1}Wa.exports=Qs -});var $a=V(function(Ri,Za){ -var Ts=require('@stdlib/ndarray-base-strides2order/dist');function Us(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B;for(o=a.shape,f=a.strides,Ts(f)===1?(s=o[8],t=o[7],n=o[6],i=o[5],c=o[4],p=o[3],l=o[2],x=o[1],m=o[0],O=f[8],y=f[7]-s*f[8],z=f[6]-t*f[7],h=f[5]-n*f[6],k=f[4]-i*f[5],b=f[3]-c*f[4],u=f[2]-p*f[3],e=f[1]-l*f[2],d=f[0]-x*f[1]):(s=o[0],t=o[1],n=o[2],i=o[3],c=o[4],p=o[5],l=o[6],x=o[7],m=o[8],O=f[0],y=f[1]-s*f[0],z=f[2]-t*f[1],h=f[3]-n*f[2],k=f[4]-i*f[3],b=f[5]-c*f[4],u=f[6]-p*f[5],e=f[7]-l*f[6],d=f[8]-x*f[7]),q=a.offset,r=a.data,v=0,B=0;B=D))return!0;q+=O}q+=y}q+=z}q+=h}q+=k}q+=b}q+=u}q+=e}q+=d}return!1}Za.exports=Us -});var av=V(function(Ni,rv){ -var Ws=require('@stdlib/ndarray-base-strides2order/dist');function Ys(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L;for(s=a.shape,S=a.strides,Ws(S)===1?(t=s[9],n=s[8],i=s[7],c=s[6],p=s[5],l=s[4],x=s[3],m=s[2],f=s[1],q=s[0],O=S[9],y=S[8]-t*S[9],z=S[7]-n*S[8],h=S[6]-i*S[7],k=S[5]-c*S[6],b=S[4]-p*S[5],u=S[3]-l*S[4],e=S[2]-x*S[3],d=S[1]-m*S[2],o=S[0]-f*S[1]):(t=s[0],n=s[1],i=s[2],c=s[3],p=s[4],l=s[5],x=s[6],m=s[7],f=s[8],q=s[9],O=S[0],y=S[1]-t*S[0],z=S[2]-n*S[1],h=S[3]-i*S[2],k=S[4]-c*S[3],b=S[5]-p*S[4],u=S[6]-l*S[5],e=S[7]-x*S[6],d=S[8]-m*S[7],o=S[9]-f*S[8]),j=a.offset,r=a.data,v=0,L=0;L=D))return!0;j+=O}j+=y}j+=z}j+=h}j+=k}j+=b}j+=u}j+=e}j+=d}j+=o}return!1}rv.exports=Ys -});var ev=V(function(Vi,vv){ -var Zs=require('@stdlib/ndarray-base-numel/dist'),$s=require('@stdlib/ndarray-base-vind2bind/dist'),ro="throw";function ao(a,D){var v,r,O,y,z,h,k,b,u;for(z=a.shape,y=Zs(z),r=a.data,h=a.strides,k=a.offset,O=a.order,v=0,u=0;u=D))return!0;return!1}vv.exports=ao -});var ov=V(function(Fi,sv){ -function vo(a,D){return!!(D<=1&&a.data[a.offset])}sv.exports=vo -});var fv=V(function(Gi,iv){ -function eo(a,D){var v,r,O,y,z,h;for(y=a.shape[0],O=a.strides[0],z=a.offset,r=a.data,v=0,h=0;h=D))return!0;z+=O}return!1}iv.exports=eo -});var dv=V(function(Hi,tv){ -var so=require('@stdlib/ndarray-base-strides2order/dist');function oo(a,D){var v,r,O,y,z,h,k,b,u,e,d;for(z=a.shape,b=a.strides,so(b)===1?(h=z[1],k=z[0],O=b[1],y=b[0]-h*b[1]):(h=z[0],k=z[1],O=b[0],y=b[1]-h*b[0]),u=a.offset,r=a.data,v=0,d=0;d=D))return!0;u+=O}u+=y}return!1}tv.exports=oo -});var xv=V(function(Ji,uv){ -var io=require('@stdlib/ndarray-base-strides2order/dist');function fo(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t;for(h=a.shape,e=a.strides,io(e)===1?(k=h[2],b=h[1],u=h[0],O=e[2],y=e[1]-k*e[2],z=e[0]-b*e[1]):(k=h[0],b=h[1],u=h[2],O=e[0],y=e[1]-k*e[0],z=e[2]-b*e[1]),d=a.offset,r=a.data,v=0,t=0;t=D))return!0;d+=O}d+=y}d+=z}return!1}uv.exports=fo -});var cv=V(function(Qi,lv){ -var to=require('@stdlib/ndarray-base-strides2order/dist');function uo(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c;for(k=a.shape,o=a.strides,to(o)===1?(b=k[3],u=k[2],e=k[1],d=k[0],O=o[3],y=o[2]-b*o[3],z=o[1]-u*o[2],h=o[0]-e*o[1]):(b=k[0],u=k[1],e=k[2],d=k[3],O=o[0],y=o[1]-b*o[0],z=o[2]-u*o[1],h=o[3]-e*o[2]),s=a.offset,r=a.data,v=0,c=0;c=D))return!0;s+=O}s+=y}s+=z}s+=h}return!1}lv.exports=uo -});var pv=V(function(Ti,nv){ -var xo=require('@stdlib/ndarray-base-strides2order/dist');function lo(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x;for(b=a.shape,t=a.strides,xo(t)===1?(u=b[4],e=b[3],d=b[2],o=b[1],s=b[0],O=t[4],y=t[3]-u*t[4],z=t[2]-e*t[3],h=t[1]-d*t[2],k=t[0]-o*t[1]):(u=b[0],e=b[1],d=b[2],o=b[3],s=b[4],O=t[0],y=t[1]-u*t[0],z=t[2]-e*t[1],h=t[3]-d*t[2],k=t[4]-o*t[3]),n=a.offset,r=a.data,v=0,x=0;x=D))return!0;n+=O}n+=y}n+=z}n+=h}n+=k}return!1}nv.exports=lo -});var bv=V(function(Ui,Sv){ -var co=require('@stdlib/ndarray-base-strides2order/dist');function no(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q;for(u=a.shape,i=a.strides,co(i)===1?(e=u[5],d=u[4],o=u[3],s=u[2],t=u[1],n=u[0],O=i[5],y=i[4]-e*i[5],z=i[3]-d*i[4],h=i[2]-o*i[3],k=i[1]-s*i[2],b=i[0]-t*i[1]):(e=u[0],d=u[1],o=u[2],s=u[3],t=u[4],n=u[5],O=i[0],y=i[1]-e*i[0],z=i[2]-d*i[1],h=i[3]-o*i[2],k=i[4]-s*i[3],b=i[5]-t*i[4]),c=a.offset,r=a.data,v=0,q=0;q=D))return!0;c+=O}c+=y}c+=z}c+=h}c+=k}c+=b}return!1}Sv.exports=no -});var mv=V(function(Wi,jv){ -var po=require('@stdlib/ndarray-base-strides2order/dist');function So(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g;for(e=a.shape,p=a.strides,po(p)===1?(d=e[6],o=e[5],s=e[4],t=e[3],n=e[2],i=e[1],c=e[0],O=p[6],y=p[5]-d*p[6],z=p[4]-o*p[5],h=p[3]-s*p[4],k=p[2]-t*p[3],b=p[1]-n*p[2],u=p[0]-i*p[1]):(d=e[0],o=e[1],s=e[2],t=e[3],n=e[4],i=e[5],c=e[6],O=p[0],y=p[1]-d*p[0],z=p[2]-o*p[1],h=p[3]-s*p[2],k=p[4]-t*p[3],b=p[5]-n*p[4],u=p[6]-i*p[5]),l=a.offset,r=a.data,v=0,g=0;g=D))return!0;l+=O}l+=y}l+=z}l+=h}l+=k}l+=b}l+=u}return!1}jv.exports=So -});var hv=V(function(Yi,qv){ -var bo=require('@stdlib/ndarray-base-strides2order/dist');function jo(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_;for(d=a.shape,x=a.strides,bo(x)===1?(o=d[7],s=d[6],t=d[5],n=d[4],i=d[3],c=d[2],p=d[1],l=d[0],O=x[7],y=x[6]-o*x[7],z=x[5]-s*x[6],h=x[4]-t*x[5],k=x[3]-n*x[4],b=x[2]-i*x[3],u=x[1]-c*x[2],e=x[0]-p*x[1]):(o=d[0],s=d[1],t=d[2],n=d[3],i=d[4],c=d[5],p=d[6],l=d[7],O=x[0],y=x[1]-o*x[0],z=x[2]-s*x[1],h=x[3]-t*x[2],k=x[4]-n*x[3],b=x[5]-i*x[4],u=x[6]-c*x[5],e=x[7]-p*x[6]),m=a.offset,r=a.data,v=0,_=0;_=D))return!0;m+=O}m+=y}m+=z}m+=h}m+=k}m+=b}m+=u}m+=e}return!1}qv.exports=jo -});var zv=V(function(Zi,kv){ -var mo=require('@stdlib/ndarray-base-strides2order/dist');function qo(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B;for(o=a.shape,f=a.strides,mo(f)===1?(s=o[8],t=o[7],n=o[6],i=o[5],c=o[4],p=o[3],l=o[2],x=o[1],m=o[0],O=f[8],y=f[7]-s*f[8],z=f[6]-t*f[7],h=f[5]-n*f[6],k=f[4]-i*f[5],b=f[3]-c*f[4],u=f[2]-p*f[3],e=f[1]-l*f[2],d=f[0]-x*f[1]):(s=o[0],t=o[1],n=o[2],i=o[3],c=o[4],p=o[5],l=o[6],x=o[7],m=o[8],O=f[0],y=f[1]-s*f[0],z=f[2]-t*f[1],h=f[3]-n*f[2],k=f[4]-i*f[3],b=f[5]-c*f[4],u=f[6]-p*f[5],e=f[7]-l*f[6],d=f[8]-x*f[7]),q=a.offset,r=a.data,v=0,B=0;B=D))return!0;q+=O}q+=y}q+=z}q+=h}q+=k}q+=b}q+=u}q+=e}q+=d}return!1}kv.exports=qo -});var yv=V(function($i,Ov){ -var ho=require('@stdlib/ndarray-base-strides2order/dist');function ko(a,D){var v,r,O,y,z,h,k,b,u,e,d,o,s,t,n,i,c,p,l,x,m,f,q,S,j,g,C,E,_,A,M,B,w,P,L;for(s=a.shape,S=a.strides,ho(S)===1?(t=s[9],n=s[8],i=s[7],c=s[6],p=s[5],l=s[4],x=s[3],m=s[2],f=s[1],q=s[0],O=S[9],y=S[8]-t*S[9],z=S[7]-n*S[8],h=S[6]-i*S[7],k=S[5]-c*S[6],b=S[4]-p*S[5],u=S[3]-l*S[4],e=S[2]-x*S[3],d=S[1]-m*S[2],o=S[0]-f*S[1]):(t=s[0],n=s[1],i=s[2],c=s[3],p=s[4],l=s[5],x=s[6],m=s[7],f=s[8],q=s[9],O=S[0],y=S[1]-t*S[0],z=S[2]-n*S[1],h=S[3]-i*S[2],k=S[4]-c*S[3],b=S[5]-p*S[4],u=S[6]-l*S[5],e=S[7]-x*S[6],d=S[8]-m*S[7],o=S[9]-f*S[8]),j=a.offset,r=a.data,v=0,L=0;L=D))return!0;j+=O}j+=y}j+=z}j+=h}j+=k}j+=b}j+=u}j+=e}j+=d}j+=o}return!1}Ov.exports=ko -});var Ev=V(function(rf,gv){ -var zo=require('@stdlib/ndarray-base-numel/dist'),Oo=require('@stdlib/ndarray-base-vind2bind/dist'),yo="throw";function go(a,D){var v,r,O,y,z,h,k,b,u;for(z=a.shape,y=zo(z),r=a.data,h=a.strides,k=a.offset,O=a.order,v=0,u=0;u=D))return!0;return!1}gv.exports=go -});var Av=V(function(af,Bv){ -var Eo=require('@stdlib/array-base-assert-is-complex-typed-array/dist'),Mo=require('@stdlib/array-base-assert-is-booleanarray/dist'),Co=require('@stdlib/ndarray-base-iteration-order/dist'),Po=require('@stdlib/ndarray-base-minmax-view-buffer-index/dist'),Mv=require('@stdlib/ndarray-base-ndarraylike2object/dist'),_o=require('@stdlib/strided-base-reinterpret-complex/dist'),Do=require('@stdlib/strided-base-reinterpret-boolean/dist'),Bo=require('@stdlib/blas-base-gscal/dist'),Ao=xr(),Lo=cr(),wo=pr(),Ko=br(),Xo=mr(),Io=hr(),Ro=zr(),No=yr(),Vo=Er(),Fo=Cr(),Go=_r(),Ho=Br(),Jo=Lr(),Qo=Kr(),To=Ir(),Uo=Nr(),Wo=Fr(),Yo=Hr(),Zo=Qr(),$o=Ur(),r0=Yr(),a0=$r(),v0=aa(),e0=ea(),s0=oa(),o0=fa(),i0=da(),f0=xa(),t0=ca(),d0=pa(),u0=ba(),x0=ma(),l0=ha(),c0=za(),n0=ya(),p0=Ea(),S0=Ca(),b0=_a(),Pv=Ba(),j0=La(),m0=Ka(),q0=Ia(),h0=Na(),k0=Fa(),z0=Ha(),O0=Qa(),y0=Ua(),g0=Ya(),E0=$a(),M0=av(),_v=ev(),C0=ov(),P0=fv(),_0=dv(),D0=xv(),B0=cv(),A0=pv(),L0=bv(),w0=mv(),K0=hv(),X0=zv(),I0=yv(),Dv=Ev(),ir=[C0,P0,_0,D0,B0,A0,L0,w0,K0,X0,I0,Dv],fr=[f0,t0,d0,u0,x0,l0,c0,n0,p0,S0,b0,Pv],tr=[j0,m0,q0,h0,k0,z0,O0,y0,g0,E0,M0,_v],R0=[Zo,$o,r0,a0,v0,e0,s0,o0,i0],N0=[Ao,Lo,wo,Ko,Xo,Io,Ro,No,Vo],V0=[Fo,Go,Ho,Jo,Qo,To,Uo,Wo,Yo],Cv=ir.length-1;function F0(a){var D,v,r,O,y,z,h,k,b,u,e,d,o,s;if(e=Mv(a[0]),d=Mv(a[1]),O=e.shape,v=O.length,u=d.accessors[0](d.data,d.offset),Mo(e.data)?(e.data=Do(e.data,0),e.accessorProtocol=!1):Eo(e.data)&&(e.data=_o(e.data,0),e.accessorProtocol=!1,e.strides=Bo(v,2,e.strides,1),e.offset*=2,D=!0),v===0)return e.accessorProtocol?fr[v](e,u):D?tr[v](e,u):ir[v](e,u);for(z=1,b=0,s=0;s} 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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' );\nvar blockSize = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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// 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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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\nvar strides2order = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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// MODULES //\n\nvar numel = require( '@stdlib/ndarray-base-numel' );\nvar vind2bind = require( '@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* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' );\n* var accessors = require( '@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\nmodule.exports = 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// 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* var Float64Array = require( '@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\nmodule.exports = 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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 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\nmodule.exports = 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// MODULES //\n\nvar numel = require( '@stdlib/ndarray-base-numel' );\nvar vind2bind = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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// 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* var Float64Array = require( '@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\nmodule.exports = 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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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\nvar strides2order = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 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\nmodule.exports = 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// MODULES //\n\nvar numel = require( '@stdlib/ndarray-base-numel' );\nvar vind2bind = require( '@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* var Float64Array = require( '@stdlib/array-float64' );\n*\n* // Create a data buffer:\n* var xbuf = new Float64Array( [ 1.0, 2.0, 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\nmodule.exports = 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\nvar isComplexArray = require( '@stdlib/array-base-assert-is-complex-typed-array' );\nvar isBooleanArray = require( '@stdlib/array-base-assert-is-booleanarray' );\nvar iterationOrder = require( '@stdlib/ndarray-base-iteration-order' );\nvar minmaxViewBufferIndex = require( '@stdlib/ndarray-base-minmax-view-buffer-index' );\nvar ndarray2object = require( '@stdlib/ndarray-base-ndarraylike2object' );\nvar reinterpretComplex = require( '@stdlib/strided-base-reinterpret-complex' );\nvar reinterpretBoolean = require( '@stdlib/strided-base-reinterpret-boolean' );\nvar gscal = require( '@stdlib/blas-base-gscal' );\nvar blockedaccessorsome2d = require( './2d_blocked_accessors.js' );\nvar blockedaccessorsome3d = require( './3d_blocked_accessors.js' );\nvar blockedaccessorsome4d = require( './4d_blocked_accessors.js' );\nvar blockedaccessorsome5d = require( './5d_blocked_accessors.js' );\nvar blockedaccessorsome6d = require( './6d_blocked_accessors.js' );\nvar blockedaccessorsome7d = require( './7d_blocked_accessors.js' );\nvar blockedaccessorsome8d = require( './8d_blocked_accessors.js' );\nvar blockedaccessorsome9d = require( './9d_blocked_accessors.js' );\nvar blockedaccessorsome10d = require( './10d_blocked_accessors.js' );\nvar blockedcomplexsome2d = require( './2d_blocked_complex.js' );\nvar blockedcomplexsome3d = require( './3d_blocked_complex.js' );\nvar blockedcomplexsome4d = require( './4d_blocked_complex.js' );\nvar blockedcomplexsome5d = require( './5d_blocked_complex.js' );\nvar blockedcomplexsome6d = require( './6d_blocked_complex.js' );\nvar blockedcomplexsome7d = require( './7d_blocked_complex.js' );\nvar blockedcomplexsome8d = require( './8d_blocked_complex.js' );\nvar blockedcomplexsome9d = require( './9d_blocked_complex.js' );\nvar blockedcomplexsome10d = require( './10d_blocked_complex.js' );\nvar blockedsome2d = require( './2d_blocked.js' );\nvar blockedsome3d = require( './3d_blocked.js' );\nvar blockedsome4d = require( './4d_blocked.js' );\nvar blockedsome5d = require( './5d_blocked.js' );\nvar blockedsome6d = require( './6d_blocked.js' );\nvar blockedsome7d = require( './7d_blocked.js' );\nvar blockedsome8d = require( './8d_blocked.js' );\nvar blockedsome9d = require( './9d_blocked.js' );\nvar blockedsome10d = require( './10d_blocked.js' );\nvar accessorsome0d = require( './0d_accessors.js' );\nvar accessorsome1d = require( './1d_accessors.js' );\nvar accessorsome2d = require( './2d_accessors.js' );\nvar accessorsome3d = require( './3d_accessors.js' );\nvar accessorsome4d = require( './4d_accessors.js' );\nvar accessorsome5d = require( './5d_accessors.js' );\nvar accessorsome6d = require( './6d_accessors.js' );\nvar accessorsome7d = require( './7d_accessors.js' );\nvar accessorsome8d = require( './8d_accessors.js' );\nvar accessorsome9d = require( './9d_accessors.js' );\nvar accessorsome10d = require( './10d_accessors.js' );\nvar accessorsomend = require( './nd_accessors.js' );\nvar complexsome0d = require( './0d_complex.js' );\nvar complexsome1d = require( './1d_complex.js' );\nvar complexsome2d = require( './2d_complex.js' );\nvar complexsome3d = require( './3d_complex.js' );\nvar complexsome4d = require( './4d_complex.js' );\nvar complexsome5d = require( './5d_complex.js' );\nvar complexsome6d = require( './6d_complex.js' );\nvar complexsome7d = require( './7d_complex.js' );\nvar complexsome8d = require( './8d_complex.js' );\nvar complexsome9d = require( './9d_complex.js' );\nvar complexsome10d = require( './10d_complex.js' );\nvar complexsomend = require( './nd_complex.js' );\nvar some0d = require( './0d.js' );\nvar some1d = require( './1d.js' );\nvar some2d = require( './2d.js' );\nvar some3d = require( './3d.js' );\nvar some4d = require( './4d.js' );\nvar some5d = require( './5d.js' );\nvar some6d = require( './6d.js' );\nvar some7d = require( './7d.js' );\nvar some8d = require( './8d.js' );\nvar some9d = require( './9d.js' );\nvar some10d = require( './10d.js' );\nvar somend = require( './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* var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' );\n* var Float64Array = require( '@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\nmodule.exports = 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/**\n* Test whether at least `n` elements in an ndarray are truthy.\n*\n* @module @stdlib/ndarray-base-some\n*\n* @example\n* var Float64Array = require( '@stdlib/array-float64' );\n* var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' );\n* var some = require( '@stdlib/ndarray-base-some' );\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*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"], - "mappings": "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AAuB,KACvBC,GAAuB,KACvBC,GAAuB,KACvBC,GAAwB,KACxBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAiB,KACjBC,GAAkB,KAClBC,GAAiB,KACjBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAgB,KAChBC,GAAiB,KACjBC,GAAgB,KAChBC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAS,KACTC,GAAU,KACVC,GAAS,KAKTC,GAAO,CACVZ,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIE,GAAgB,CACnBrC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACI2B,GAAe,CAClB1B,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIgB,GAAe,CAClBhD,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIyC,GAAwB,CAC3BnE,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACI4D,GAAuB,CAC1B3D,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EACD,EACIoD,GAAWN,GAAK,OAAS,EAyD7B,SAASO,GAAMC,EAAS,CACvB,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA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", - "names": ["require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome2d", "x", "n", "bsize", "count", "xbuf", "get", "dx0", "dx1", "ox1", "sh", "s0", "s1", "sx", "ox", "ix", "i0", "i1", "j0", "j1", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome3d", "x", "n", "bsize", "count", "xbuf", "get", "dx0", "dx1", "dx2", "ox1", "ox2", "sh", "s0", "s1", "s2", "sx", "ox", "ix", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome4d", "x", "n", "bsize", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "ox1", "ox2", "ox3", "sh", "s0", "s1", "s2", "s3", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome5d", "x", "n", "count", "bsize", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "ox1", "ox2", "ox3", "ox4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome6d", "x", "n", "count", "bsize", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "ox1", "ox2", "ox3", "ox4", "ox5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome7d", "x", "n", "count", "bsize", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome8d", "x", "n", "count", "bsize", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome9d", "x", "n", "count", "bsize", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_accessors", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome10d", "x", "n", "count", "bsize", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome2d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "ox1", "sh", "s0", "s1", "sx", "ox", "ix", "i0", "i1", "j0", "j1", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome3d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "ox1", "ox2", "sh", "s0", "s1", "s2", "sx", "ox", "ix", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome4d", "x", "n", "bsize", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "ox1", "ox2", "ox3", "sh", "s0", "s1", "s2", "s3", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome5d", "x", "n", "bsize", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "ox1", "ox2", "ox3", "ox4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome6d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "ox1", "ox2", "ox3", "ox4", "ox5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome7d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome8d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome9d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked_complex", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome10d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome2d", "x", "n", "bsize", "count", "xbuf", "dx0", "dx1", "ox1", "sh", "s0", "s1", "sx", "ox", "ix", "i0", "i1", "j0", "j1", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome3d", "x", "n", "bsize", "count", "xbuf", "dx0", "dx1", "dx2", "ox1", "ox2", "sh", "s0", "s1", "s2", "sx", "ox", "ix", "i0", "i1", "i2", "j0", "j1", "j2", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome4d", "x", "n", "bsize", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "ox1", "ox2", "ox3", "sh", "s0", "s1", "s2", "s3", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "j0", "j1", "j2", "j3", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome5d", "x", "n", "bsize", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "ox1", "ox2", "ox3", "ox4", "sh", "s0", "s1", "s2", "s3", "s4", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "j0", "j1", "j2", "j3", "j4", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome6d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "ox1", "ox2", "ox3", "ox4", "ox5", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "j0", "j1", "j2", "j3", "j4", "j5", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome7d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome8d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome9d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "o", "require_d_blocked", "__commonJSMin", "exports", "module", "loopOrder", "blockSize", "blockedsome10d", "x", "n", "count", "bsize", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "ox1", "ox2", "ox3", "ox4", "ox5", "ox6", "ox7", "ox8", "ox9", "sh", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "s9", "sx", "ox", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "j0", "j1", "j2", "j3", "j4", "j5", "j6", "j7", "j8", "j9", "o", "require_d_accessors", "__commonJSMin", "exports", "module", "some0d", "x", "n", "require_d_accessors", "__commonJSMin", "exports", "module", "some1d", "x", "n", "count", "xbuf", "get", "dx0", "S0", "ix", "i0", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some2d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "sh", "S0", "S1", "sx", "ix", "i0", "i1", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some3d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "sh", "S0", "S1", "S2", "sx", "ix", "i0", "i1", "i2", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some4d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "sh", "S0", "S1", "S2", "S3", "sx", "ix", "i0", "i1", "i2", "i3", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some5d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some6d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some7d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some8d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some9d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_accessors", "__commonJSMin", "exports", "module", "strides2order", "some10d", "x", "n", "count", "xbuf", "get", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd_accessors", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "somend", "x", "n", "count", "xbuf", "ordx", "len", "get", "sh", "sx", "ox", "ix", "i", "require_d_complex", "__commonJSMin", "exports", "module", "some0d", "x", "n", "require_d_complex", "__commonJSMin", "exports", "module", "some1d", "x", "n", "count", "xbuf", "dx0", "S0", "ix", "i0", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some2d", "x", "n", "count", "xbuf", "dx0", "dx1", "sh", "S0", "S1", "sx", "ix", "i0", "i1", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some3d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "sh", "S0", "S1", "S2", "sx", "ix", "i0", "i1", "i2", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some4d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "sh", "S0", "S1", "S2", "S3", "sx", "ix", "i0", "i1", "i2", "i3", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some5d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some6d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some7d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some8d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some9d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d_complex", "__commonJSMin", "exports", "module", "strides2order", "some10d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd_complex", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "somend", "x", "n", "count", "xbuf", "ordx", "len", "sh", "sx", "ox", "ix", "i", "require_d", "__commonJSMin", "exports", "module", "some0d", "x", "n", "require_d", "__commonJSMin", "exports", "module", "some1d", "x", "n", "count", "xbuf", "dx0", "S0", "ix", "i0", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some2d", "x", "n", "count", "xbuf", "dx0", "dx1", "sh", "S0", "S1", "sx", "ix", "i0", "i1", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some3d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "sh", "S0", "S1", "S2", "sx", "ix", "i0", "i1", "i2", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some4d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "sh", "S0", "S1", "S2", "S3", "sx", "ix", "i0", "i1", "i2", "i3", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some5d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "sh", "S0", "S1", "S2", "S3", "S4", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some6d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some7d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some8d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some9d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "require_d", "__commonJSMin", "exports", "module", "strides2order", "some10d", "x", "n", "count", "xbuf", "dx0", "dx1", "dx2", "dx3", "dx4", "dx5", "dx6", "dx7", "dx8", "dx9", "sh", "S0", "S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8", "S9", "sx", "ix", "i0", "i1", "i2", "i3", "i4", "i5", "i6", "i7", "i8", "i9", "require_nd", "__commonJSMin", "exports", "module", "numel", "vind2bind", "MODE", "somend", "x", "n", "count", "xbuf", "ordx", "len", "sh", "sx", "ox", "ix", "i", "require_main", "__commonJSMin", "exports", "module", "isComplexArray", "isBooleanArray", "iterationOrder", "minmaxViewBufferIndex", "ndarray2object", "reinterpretComplex", "reinterpretBoolean", "gscal", "blockedaccessorsome2d", "blockedaccessorsome3d", "blockedaccessorsome4d", "blockedaccessorsome5d", "blockedaccessorsome6d", "blockedaccessorsome7d", "blockedaccessorsome8d", "blockedaccessorsome9d", "blockedaccessorsome10d", "blockedcomplexsome2d", "blockedcomplexsome3d", "blockedcomplexsome4d", "blockedcomplexsome5d", "blockedcomplexsome6d", "blockedcomplexsome7d", "blockedcomplexsome8d", "blockedcomplexsome9d", "blockedcomplexsome10d", "blockedsome2d", "blockedsome3d", "blockedsome4d", "blockedsome5d", "blockedsome6d", "blockedsome7d", "blockedsome8d", "blockedsome9d", "blockedsome10d", "accessorsome0d", "accessorsome1d", "accessorsome2d", "accessorsome3d", "accessorsome4d", "accessorsome5d", "accessorsome6d", "accessorsome7d", "accessorsome8d", "accessorsome9d", "accessorsome10d", "accessorsomend", "complexsome0d", "complexsome1d", "complexsome2d", "complexsome3d", "complexsome4d", "complexsome5d", "complexsome6d", "complexsome7d", "complexsome8d", "complexsome9d", "complexsome10d", "complexsomend", "some0d", "some1d", "some2d", "some3d", "some4d", "some5d", "some6d", "some7d", "some8d", "some9d", "some10d", "somend", "SOME", "ACCESSOR_SOME", "COMPLEX_SOME", "BLOCKED_SOME", "BLOCKED_ACCESSOR_SOME", "BLOCKED_COMPLEX_SOME", "MAX_DIMS", "some", "arrays", "isCmplx", "ndims", "xmmv", "shx", "iox", "len", "sx", "ox", "ns", "N", "x", "n", "d", "i", "main"] -} diff --git a/docs/repl.txt b/docs/repl.txt deleted file mode 100644 index 420ecfd..0000000 --- a/docs/repl.txt +++ /dev/null @@ -1,58 +0,0 @@ - -{{alias}}( arrays ) - Tests whether at least `n` elements in an ndarray are truthy. - - A provided "ndarray" should be an object with the following properties: - - - dtype: data type. - - data: data buffer. - - shape: dimensions. - - strides: stride lengths. - - offset: index offset. - - order: specifies whether an ndarray is row-major (C-style) or column-major - (Fortran-style). - - Parameters - ---------- - arrays: ArrayLikeObject - 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 - ------- - out: boolean - Boolean indicating whether at least `n` elements in an ndarray are - truthy. - - Examples - -------- - // Define ndarray data and meta data... - > var xbuf = new {{alias:@stdlib/array/float64}}( [ 1.0, 1.0, 0.0, 1.0 ] ); - > var dt = 'float64'; - > var sh = [ 2, 2 ]; - > var sx = [ 2, 1 ]; - > var ox = 0; - > var ord = 'row-major'; - - // Using an ndarray... - > var x = {{alias:@stdlib/ndarray/ctor}}( dt, xbuf, sh, sx, ox, ord ); - > var n = {{alias:@stdlib/ndarray/from-scalar}}( 3 ); - > {{alias}}( [ x, n ] ) - true - - // Using a minimal ndarray-like object... - > xbuf = new {{alias:@stdlib/array/float64}}( [ -1.0, 0.0, 0.0, -1.0 ] ); - > x = { - ... 'dtype': dt, - ... 'data': xbuf, - ... 'shape': sh, - ... 'strides': sx, - ... 'offset': ox, - ... 'order': ord - ... }; - > {{alias}}( [ x, n ] ) - false - - See Also - -------- diff --git a/docs/types/test.ts b/docs/types/test.ts deleted file mode 100644 index b0d27b4..0000000 --- a/docs/types/test.ts +++ /dev/null @@ -1,63 +0,0 @@ -/* -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import zeros = require( '@stdlib/ndarray-zeros' ); -import scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -import some = require( './index' ); - - -// TESTS // - -// The function returns a boolean... -{ - const x = zeros( [ 2, 2 ] ); - const n = scalar2ndarray( 2, { 'dtype': 'generic' } ); - - some( [ x, n ] ); // $ExpectType boolean -} - -// The compiler throws an error if the function is provided a first argument which is not an array-like object containing ndarray-like objects... -{ - some( 5 ); // $ExpectError - some( true ); // $ExpectError - some( false ); // $ExpectError - some( null ); // $ExpectError - some( undefined ); // $ExpectError - some( {} ); // $ExpectError - some( [ 1 ] ); // $ExpectError - some( ( x: number ): number => x ); // $ExpectError - - some( 5 ); // $ExpectError - some( true ); // $ExpectError - some( false ); // $ExpectError - some( null ); // $ExpectError - some( undefined ); // $ExpectError - some( {} ); // $ExpectError - some( [ 1 ] ); // $ExpectError - some( ( x: number ): number => x ); // $ExpectError -} - -// The compiler throws an error if the function is provided an unsupported number of arguments... -{ - const x = zeros( [ 2, 2 ] ); - const n = scalar2ndarray( 2, { 'dtype': 'generic' } ); - - some(); // $ExpectError - some( [ x ] ); // $ExpectError - some( [ x, n ], {}, {} ); // $ExpectError -} diff --git a/examples/index.js b/examples/index.js deleted file mode 100644 index 61d42e9..0000000 --- a/examples/index.js +++ /dev/null @@ -1,43 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -var discreteUniform = require( '@stdlib/random-array-discrete-uniform' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var ndarray2array = require( '@stdlib/ndarray-base-to-array' ); -var some = require( './../lib' ); - -var x = { - 'dtype': 'generic', - 'data': discreteUniform( 10, -2, 10, { - 'dtype': 'generic' - }), - 'shape': [ 5, 2 ], - 'strides': [ 2, 1 ], - 'offset': 0, - 'order': 'row-major' -}; -console.log( ndarray2array( x.data, x.shape, x.strides, x.offset, x.order ) ); - -var n = scalar2ndarray( 5, { - 'dtype': 'generic' -}); - -var out = some( [ x, n ] ); -console.log( out ); diff --git a/docs/types/index.d.ts b/index.d.ts similarity index 95% rename from docs/types/index.d.ts rename to index.d.ts index 785b37d..84cd01f 100644 --- a/docs/types/index.d.ts +++ b/index.d.ts @@ -18,7 +18,7 @@ // TypeScript Version: 4.1 -/// +/// import { ndarray, typedndarray } from '@stdlib/types/ndarray'; diff --git a/index.mjs b/index.mjs new file mode 100644 index 0000000..265fc94 --- /dev/null +++ b/index.mjs @@ -0,0 +1,4 @@ +// Copyright (c) 2026 The Stdlib Authors. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0 +/// +import r from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-assert-is-complex-typed-array@v0.1.3-esm/index.mjs";import f from"https://cdn.jsdelivr.net/gh/stdlib-js/array-base-assert-is-booleanarray@v0.0.3-esm/index.mjs";import o from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-iteration-order@v0.2.3-esm/index.mjs";import t from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-minmax-view-buffer-index@v0.2.3-esm/index.mjs";import s from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-ndarraylike2object@v0.2.3-esm/index.mjs";import e from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-reinterpret-complex@v0.1.3-esm/index.mjs";import a from"https://cdn.jsdelivr.net/gh/stdlib-js/strided-base-reinterpret-boolean@v0.0.3-esm/index.mjs";import n from"https://cdn.jsdelivr.net/gh/stdlib-js/blas-base-gscal@v0.3.1-esm/index.mjs";import i from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-nullary-loop-interchange-order@v0.2.3-esm/index.mjs";import d from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-nullary-tiling-block-size@v0.2.3-esm/index.mjs";import u from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-nullary-tiling-block-size@esm/index.mjs";import c from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-nullary-loop-interchange-order@esm/index.mjs";import p from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-strides2order@esm/index.mjs";import h from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-numel@v0.2.3-esm/index.mjs";import v from"https://cdn.jsdelivr.net/gh/stdlib-js/ndarray-base-vind2bind@esm/index.mjs";var m="throw";function l(r,f){var o,t,s,e,a,n,i,d,u;for(n=r.shape,e=h(n),t=r.data,i=r.strides,d=r.offset,s=r.order,a=r.accessors[0],o=0,u=0;u=f)return!0;return!1}var x="throw";function y(r,f){var o,t,s,e,a,n,i,d,u;for(a=r.shape,e=h(a),t=r.data,n=r.strides,i=r.offset,s=r.order,o=0,u=0;u=f)return!0;return!1}var j="throw";function b(r,f){var o,t,s,e,a,n,i,d;for(a=r.shape,e=h(a),t=r.data,n=r.strides,i=r.offset,s=r.order,o=0,d=0;d=f)return!0;return!1}var g=[function(r,f){return!!(f<=1&&r.data[r.offset])},function(r,f){var o,t,s,e,a,n;for(e=r.shape[0],s=r.strides[0],a=r.offset,t=r.data,o=0,n=0;n=f)return!0;a+=s}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h;for(a=r.shape,d=r.strides,1===p(d)?(n=a[1],i=a[0],s=d[1],e=d[0]-n*d[1]):(n=a[0],i=a[1],s=d[0],e=d[1]-n*d[0]),u=r.offset,t=r.data,o=0,h=0;h=f)return!0;u+=s}u+=e}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l;for(n=r.shape,c=r.strides,1===p(c)?(i=n[2],d=n[1],u=n[0],s=c[2],e=c[1]-i*c[2],a=c[0]-d*c[1]):(i=n[0],d=n[1],u=n[2],s=c[0],e=c[1]-i*c[0],a=c[2]-d*c[1]),h=r.offset,t=r.data,o=0,l=0;l=f)return!0;h+=s}h+=e}h+=a}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j;for(i=r.shape,v=r.strides,1===p(v)?(d=i[3],u=i[2],c=i[1],h=i[0],s=v[3],e=v[2]-d*v[3],a=v[1]-u*v[2],n=v[0]-c*v[1]):(d=i[0],u=i[1],c=i[2],h=i[3],s=v[0],e=v[1]-d*v[0],a=v[2]-u*v[1],n=v[3]-c*v[2]),m=r.offset,t=r.data,o=0,j=0;j=f)return!0;m+=s}m+=e}m+=a}m+=n}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P;for(d=r.shape,l=r.strides,1===p(l)?(u=d[4],c=d[3],h=d[2],v=d[1],m=d[0],s=l[4],e=l[3]-u*l[4],a=l[2]-c*l[3],n=l[1]-h*l[2],i=l[0]-v*l[1]):(u=d[0],c=d[1],h=d[2],v=d[3],m=d[4],s=l[0],e=l[1]-u*l[0],a=l[2]-c*l[1],n=l[3]-h*l[2],i=l[4]-v*l[3]),x=r.offset,t=r.data,o=0,P=0;P=f)return!0;x+=s}x+=e}x+=a}x+=n}x+=i}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z;for(u=r.shape,y=r.strides,1===p(y)?(c=u[5],h=u[4],v=u[3],m=u[2],l=u[1],x=u[0],s=y[5],e=y[4]-c*y[5],a=y[3]-h*y[4],n=y[2]-v*y[3],i=y[1]-m*y[2],d=y[0]-l*y[1]):(c=u[0],h=u[1],v=u[2],m=u[3],l=u[4],x=u[5],s=y[0],e=y[1]-c*y[0],a=y[2]-h*y[1],n=y[3]-v*y[2],i=y[4]-m*y[3],d=y[5]-l*y[4]),j=r.offset,t=r.data,o=0,z=0;z=f)return!0;j+=s}j+=e}j+=a}j+=n}j+=i}j+=d}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B;for(c=r.shape,b=r.strides,1===p(b)?(h=c[6],v=c[5],m=c[4],l=c[3],x=c[2],y=c[1],j=c[0],s=b[6],e=b[5]-h*b[6],a=b[4]-v*b[5],n=b[3]-m*b[4],i=b[2]-l*b[3],d=b[1]-x*b[2],u=b[0]-y*b[1]):(h=c[0],v=c[1],m=c[2],l=c[3],x=c[4],y=c[5],j=c[6],s=b[0],e=b[1]-h*b[0],a=b[2]-v*b[1],n=b[3]-m*b[2],i=b[4]-l*b[3],d=b[5]-x*b[4],u=b[6]-y*b[5]),g=r.offset,t=r.data,o=0,B=0;B=f)return!0;g+=s}g+=e}g+=a}g+=n}g+=i}g+=d}g+=u}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E;for(h=r.shape,P=r.strides,1===p(P)?(v=h[7],m=h[6],l=h[5],x=h[4],y=h[3],j=h[2],b=h[1],g=h[0],s=P[7],e=P[6]-v*P[7],a=P[5]-m*P[6],n=P[4]-l*P[5],i=P[3]-x*P[4],d=P[2]-y*P[3],u=P[1]-j*P[2],c=P[0]-b*P[1]):(v=h[0],m=h[1],l=h[2],x=h[3],y=h[4],j=h[5],b=h[6],g=h[7],s=P[0],e=P[1]-v*P[0],a=P[2]-m*P[1],n=P[3]-l*P[2],i=P[4]-x*P[3],d=P[5]-y*P[4],u=P[6]-j*P[5],c=P[7]-b*P[6]),w=r.offset,t=r.data,o=0,E=0;E=f)return!0;w+=s}w+=e}w+=a}w+=n}w+=i}w+=d}w+=u}w+=c}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H;for(v=r.shape,k=r.strides,1===p(k)?(m=v[8],l=v[7],x=v[6],y=v[5],j=v[4],b=v[3],g=v[2],P=v[1],w=v[0],s=k[8],e=k[7]-m*k[8],a=k[6]-l*k[7],n=k[5]-x*k[6],i=k[4]-y*k[5],d=k[3]-j*k[4],u=k[2]-b*k[3],c=k[1]-g*k[2],h=k[0]-P*k[1]):(m=v[0],l=v[1],x=v[2],y=v[3],j=v[4],b=v[5],g=v[6],P=v[7],w=v[8],s=k[0],e=k[1]-m*k[0],a=k[2]-l*k[1],n=k[3]-x*k[2],i=k[4]-y*k[3],d=k[5]-j*k[4],u=k[6]-b*k[5],c=k[7]-g*k[6],h=k[8]-P*k[7]),z=r.offset,t=r.data,o=0,H=0;H=f)return!0;z+=s}z+=e}z+=a}z+=n}z+=i}z+=d}z+=u}z+=c}z+=h}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K;for(m=r.shape,q=r.strides,1===p(q)?(l=m[9],x=m[8],y=m[7],j=m[6],b=m[5],g=m[4],P=m[3],w=m[2],k=m[1],z=m[0],s=q[9],e=q[8]-l*q[9],a=q[7]-x*q[8],n=q[6]-y*q[7],i=q[5]-j*q[6],d=q[4]-b*q[5],u=q[3]-g*q[4],c=q[2]-P*q[3],h=q[1]-w*q[2],v=q[0]-k*q[1]):(l=m[0],x=m[1],y=m[2],j=m[3],b=m[4],g=m[5],P=m[6],w=m[7],k=m[8],z=m[9],s=q[0],e=q[1]-l*q[0],a=q[2]-x*q[1],n=q[3]-y*q[2],i=q[4]-j*q[3],d=q[5]-b*q[4],u=q[6]-g*q[5],c=q[7]-P*q[6],h=q[8]-w*q[7],v=q[9]-k*q[8]),A=r.offset,t=r.data,o=0,K=0;K=f)return!0;A+=s}A+=e}A+=a}A+=n}A+=i}A+=d}A+=u}A+=c}A+=h}A+=v}return!1},b],P=[function(r,f){return!!(f<=1&&r.accessors[0](r.data,r.offset))},function(r,f){var o,t,s,e,a,n,i;for(a=r.shape[0],e=r.strides[0],n=r.offset,t=r.data,s=r.accessors[0],o=0,i=0;i=f)return!0;n+=e}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v;for(n=r.shape,u=r.strides,1===p(u)?(i=n[1],d=n[0],e=u[1],a=u[0]-i*u[1]):(i=n[0],d=n[1],e=u[0],a=u[1]-i*u[0]),c=r.offset,t=r.data,s=r.accessors[0],o=0,v=0;v=f)return!0;c+=e}c+=a}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x;for(i=r.shape,h=r.strides,1===p(h)?(d=i[2],u=i[1],c=i[0],e=h[2],a=h[1]-d*h[2],n=h[0]-u*h[1]):(d=i[0],u=i[1],c=i[2],e=h[0],a=h[1]-d*h[0],n=h[2]-u*h[1]),v=r.offset,t=r.data,s=r.accessors[0],o=0,x=0;x=f)return!0;v+=e}v+=a}v+=n}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b;for(d=r.shape,m=r.strides,1===p(m)?(u=d[3],c=d[2],h=d[1],v=d[0],e=m[3],a=m[2]-u*m[3],n=m[1]-c*m[2],i=m[0]-h*m[1]):(u=d[0],c=d[1],h=d[2],v=d[3],e=m[0],a=m[1]-u*m[0],n=m[2]-c*m[1],i=m[3]-h*m[2]),l=r.offset,t=r.data,s=r.accessors[0],o=0,b=0;b=f)return!0;l+=e}l+=a}l+=n}l+=i}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w;for(u=r.shape,x=r.strides,1===p(x)?(c=u[4],h=u[3],v=u[2],m=u[1],l=u[0],e=x[4],a=x[3]-c*x[4],n=x[2]-h*x[3],i=x[1]-v*x[2],d=x[0]-m*x[1]):(c=u[0],h=u[1],v=u[2],m=u[3],l=u[4],e=x[0],a=x[1]-c*x[0],n=x[2]-h*x[1],i=x[3]-v*x[2],d=x[4]-m*x[3]),y=r.offset,t=r.data,s=r.accessors[0],o=0,w=0;w=f)return!0;y+=e}y+=a}y+=n}y+=i}y+=d}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q;for(c=r.shape,j=r.strides,1===p(j)?(h=c[5],v=c[4],m=c[3],l=c[2],x=c[1],y=c[0],e=j[5],a=j[4]-h*j[5],n=j[3]-v*j[4],i=j[2]-m*j[3],d=j[1]-l*j[2],u=j[0]-x*j[1]):(h=c[0],v=c[1],m=c[2],l=c[3],x=c[4],y=c[5],e=j[0],a=j[1]-h*j[0],n=j[2]-v*j[1],i=j[3]-m*j[2],d=j[4]-l*j[3],u=j[5]-x*j[4]),b=r.offset,t=r.data,s=r.accessors[0],o=0,q=0;q=f)return!0;b+=e}b+=a}b+=n}b+=i}b+=d}b+=u}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C;for(h=r.shape,g=r.strides,1===p(g)?(v=h[6],m=h[5],l=h[4],x=h[3],y=h[2],j=h[1],b=h[0],e=g[6],a=g[5]-v*g[6],n=g[4]-m*g[5],i=g[3]-l*g[4],d=g[2]-x*g[3],u=g[1]-y*g[2],c=g[0]-j*g[1]):(v=h[0],m=h[1],l=h[2],x=h[3],y=h[4],j=h[5],b=h[6],e=g[0],a=g[1]-v*g[0],n=g[2]-m*g[1],i=g[3]-l*g[2],d=g[4]-x*g[3],u=g[5]-y*g[4],c=g[6]-j*g[5]),P=r.offset,t=r.data,s=r.accessors[0],o=0,C=0;C=f)return!0;P+=e}P+=a}P+=n}P+=i}P+=d}P+=u}P+=c}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F;for(v=r.shape,w=r.strides,1===p(w)?(m=v[7],l=v[6],x=v[5],y=v[4],j=v[3],b=v[2],g=v[1],P=v[0],e=w[7],a=w[6]-m*w[7],n=w[5]-l*w[6],i=w[4]-x*w[5],d=w[3]-y*w[4],u=w[2]-j*w[3],c=w[1]-b*w[2],h=w[0]-g*w[1]):(m=v[0],l=v[1],x=v[2],y=v[3],j=v[4],b=v[5],g=v[6],P=v[7],e=w[0],a=w[1]-m*w[0],n=w[2]-l*w[1],i=w[3]-x*w[2],d=w[4]-y*w[3],u=w[5]-j*w[4],c=w[6]-b*w[5],h=w[7]-g*w[6]),k=r.offset,t=r.data,s=r.accessors[0],o=0,F=0;F=f)return!0;k+=e}k+=a}k+=n}k+=i}k+=d}k+=u}k+=c}k+=h}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I;for(m=r.shape,z=r.strides,1===p(z)?(l=m[8],x=m[7],y=m[6],j=m[5],b=m[4],g=m[3],P=m[2],w=m[1],k=m[0],e=z[8],a=z[7]-l*z[8],n=z[6]-x*z[7],i=z[5]-y*z[6],d=z[4]-j*z[5],u=z[3]-b*z[4],c=z[2]-g*z[3],h=z[1]-P*z[2],v=z[0]-w*z[1]):(l=m[0],x=m[1],y=m[2],j=m[3],b=m[4],g=m[5],P=m[6],w=m[7],k=m[8],e=z[0],a=z[1]-l*z[0],n=z[2]-x*z[1],i=z[3]-y*z[2],d=z[4]-j*z[3],u=z[5]-b*z[4],c=z[6]-g*z[5],h=z[7]-P*z[6],v=z[8]-w*z[7]),q=r.offset,t=r.data,s=r.accessors[0],o=0,I=0;I=f)return!0;q+=e}q+=a}q+=n}q+=i}q+=d}q+=u}q+=c}q+=h}q+=v}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L;for(l=r.shape,A=r.strides,1===p(A)?(x=l[9],y=l[8],j=l[7],b=l[6],g=l[5],P=l[4],w=l[3],k=l[2],z=l[1],q=l[0],e=A[9],a=A[8]-x*A[9],n=A[7]-y*A[8],i=A[6]-j*A[7],d=A[5]-b*A[6],u=A[4]-g*A[5],c=A[3]-P*A[4],h=A[2]-w*A[3],v=A[1]-k*A[2],m=A[0]-z*A[1]):(x=l[0],y=l[1],j=l[2],b=l[3],g=l[4],P=l[5],w=l[6],k=l[7],z=l[8],q=l[9],e=A[0],a=A[1]-x*A[0],n=A[2]-y*A[1],i=A[3]-j*A[2],d=A[4]-b*A[3],u=A[5]-g*A[4],c=A[6]-P*A[5],h=A[7]-w*A[6],v=A[8]-k*A[7],m=A[9]-z*A[8]),B=r.offset,t=r.data,s=r.accessors[0],o=0,L=0;L=f)return!0;B+=e}B+=a}B+=n}B+=i}B+=d}B+=u}B+=c}B+=h}B+=v}B+=m}return!1},l],w=[function(r,f){return!!(f<=1&&(r.data[r.offset]||r.data[r.offset+1]))},function(r,f){var o,t,s,e,a,n;for(e=r.shape[0],s=r.strides[0],a=r.offset,t=r.data,o=0,n=0;n=f)return!0;a+=s}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h;for(a=r.shape,d=r.strides,1===p(d)?(n=a[1],i=a[0],s=d[1],e=d[0]-n*d[1]):(n=a[0],i=a[1],s=d[0],e=d[1]-n*d[0]),u=r.offset,t=r.data,o=0,h=0;h=f)return!0;u+=s}u+=e}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l;for(n=r.shape,c=r.strides,1===p(c)?(i=n[2],d=n[1],u=n[0],s=c[2],e=c[1]-i*c[2],a=c[0]-d*c[1]):(i=n[0],d=n[1],u=n[2],s=c[0],e=c[1]-i*c[0],a=c[2]-d*c[1]),h=r.offset,t=r.data,o=0,l=0;l=f)return!0;h+=s}h+=e}h+=a}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j;for(i=r.shape,v=r.strides,1===p(v)?(d=i[3],u=i[2],c=i[1],h=i[0],s=v[3],e=v[2]-d*v[3],a=v[1]-u*v[2],n=v[0]-c*v[1]):(d=i[0],u=i[1],c=i[2],h=i[3],s=v[0],e=v[1]-d*v[0],a=v[2]-u*v[1],n=v[3]-c*v[2]),m=r.offset,t=r.data,o=0,j=0;j=f)return!0;m+=s}m+=e}m+=a}m+=n}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P;for(d=r.shape,l=r.strides,1===p(l)?(u=d[4],c=d[3],h=d[2],v=d[1],m=d[0],s=l[4],e=l[3]-u*l[4],a=l[2]-c*l[3],n=l[1]-h*l[2],i=l[0]-v*l[1]):(u=d[0],c=d[1],h=d[2],v=d[3],m=d[4],s=l[0],e=l[1]-u*l[0],a=l[2]-c*l[1],n=l[3]-h*l[2],i=l[4]-v*l[3]),x=r.offset,t=r.data,o=0,P=0;P=f)return!0;x+=s}x+=e}x+=a}x+=n}x+=i}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z;for(u=r.shape,y=r.strides,1===p(y)?(c=u[5],h=u[4],v=u[3],m=u[2],l=u[1],x=u[0],s=y[5],e=y[4]-c*y[5],a=y[3]-h*y[4],n=y[2]-v*y[3],i=y[1]-m*y[2],d=y[0]-l*y[1]):(c=u[0],h=u[1],v=u[2],m=u[3],l=u[4],x=u[5],s=y[0],e=y[1]-c*y[0],a=y[2]-h*y[1],n=y[3]-v*y[2],i=y[4]-m*y[3],d=y[5]-l*y[4]),j=r.offset,t=r.data,o=0,z=0;z=f)return!0;j+=s}j+=e}j+=a}j+=n}j+=i}j+=d}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B;for(c=r.shape,b=r.strides,1===p(b)?(h=c[6],v=c[5],m=c[4],l=c[3],x=c[2],y=c[1],j=c[0],s=b[6],e=b[5]-h*b[6],a=b[4]-v*b[5],n=b[3]-m*b[4],i=b[2]-l*b[3],d=b[1]-x*b[2],u=b[0]-y*b[1]):(h=c[0],v=c[1],m=c[2],l=c[3],x=c[4],y=c[5],j=c[6],s=b[0],e=b[1]-h*b[0],a=b[2]-v*b[1],n=b[3]-m*b[2],i=b[4]-l*b[3],d=b[5]-x*b[4],u=b[6]-y*b[5]),g=r.offset,t=r.data,o=0,B=0;B=f)return!0;g+=s}g+=e}g+=a}g+=n}g+=i}g+=d}g+=u}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E;for(h=r.shape,P=r.strides,1===p(P)?(v=h[7],m=h[6],l=h[5],x=h[4],y=h[3],j=h[2],b=h[1],g=h[0],s=P[7],e=P[6]-v*P[7],a=P[5]-m*P[6],n=P[4]-l*P[5],i=P[3]-x*P[4],d=P[2]-y*P[3],u=P[1]-j*P[2],c=P[0]-b*P[1]):(v=h[0],m=h[1],l=h[2],x=h[3],y=h[4],j=h[5],b=h[6],g=h[7],s=P[0],e=P[1]-v*P[0],a=P[2]-m*P[1],n=P[3]-l*P[2],i=P[4]-x*P[3],d=P[5]-y*P[4],u=P[6]-j*P[5],c=P[7]-b*P[6]),w=r.offset,t=r.data,o=0,E=0;E=f)return!0;w+=s}w+=e}w+=a}w+=n}w+=i}w+=d}w+=u}w+=c}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H;for(v=r.shape,k=r.strides,1===p(k)?(m=v[8],l=v[7],x=v[6],y=v[5],j=v[4],b=v[3],g=v[2],P=v[1],w=v[0],s=k[8],e=k[7]-m*k[8],a=k[6]-l*k[7],n=k[5]-x*k[6],i=k[4]-y*k[5],d=k[3]-j*k[4],u=k[2]-b*k[3],c=k[1]-g*k[2],h=k[0]-P*k[1]):(m=v[0],l=v[1],x=v[2],y=v[3],j=v[4],b=v[5],g=v[6],P=v[7],w=v[8],s=k[0],e=k[1]-m*k[0],a=k[2]-l*k[1],n=k[3]-x*k[2],i=k[4]-y*k[3],d=k[5]-j*k[4],u=k[6]-b*k[5],c=k[7]-g*k[6],h=k[8]-P*k[7]),z=r.offset,t=r.data,o=0,H=0;H=f)return!0;z+=s}z+=e}z+=a}z+=n}z+=i}z+=d}z+=u}z+=c}z+=h}return!1},function(r,f){var o,t,s,e,a,n,i,d,u,c,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K;for(m=r.shape,q=r.strides,1===p(q)?(l=m[9],x=m[8],y=m[7],j=m[6],b=m[5],g=m[4],P=m[3],w=m[2],k=m[1],z=m[0],s=q[9],e=q[8]-l*q[9],a=q[7]-x*q[8],n=q[6]-y*q[7],i=q[5]-j*q[6],d=q[4]-b*q[5],u=q[3]-g*q[4],c=q[2]-P*q[3],h=q[1]-w*q[2],v=q[0]-k*q[1]):(l=m[0],x=m[1],y=m[2],j=m[3],b=m[4],g=m[5],P=m[6],w=m[7],k=m[8],z=m[9],s=q[0],e=q[1]-l*q[0],a=q[2]-x*q[1],n=q[3]-y*q[2],i=q[4]-j*q[3],d=q[5]-b*q[4],u=q[6]-g*q[5],c=q[7]-P*q[6],h=q[8]-w*q[7],v=q[9]-k*q[8]),A=r.offset,t=r.data,o=0,K=0;K=f)return!0;A+=s}A+=e}A+=a}A+=n}A+=i}A+=d}A+=u}A+=c}A+=h}A+=v}return!1},y],k=[function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b;for(u=(b=i(r.shape,r.strides)).sh,h=b.sx,o=d(r.dtype),v=r.offset,s=r.data,e=h[0],t=0,j=u[1];j>0;)for(j0;)for(y=f)return!0;m+=e}m+=a}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z;for(p=(z=i(r.shape,r.strides)).sh,l=z.sx,o=d(r.dtype),x=r.offset,s=r.data,e=l[0],t=0,k=p[2];k>0;)for(k0;)for(w0;)for(P=f)return!0;y+=e}y+=a}y+=n}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D;for(v=(D=i(r.shape,r.strides)).sh,j=D.sx,o=d(r.dtype),b=r.offset,s=r.data,e=j[0],t=0,C=v[3];C>0;)for(C0;)for(B0;)for(A0;)for(q=f)return!0;g+=e}g+=a}g+=n}g+=u}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I;for(l=(I=i(r.shape,r.strides)).sh,P=I.sx,o=d(r.dtype),w=r.offset,s=r.data,e=P[0],t=0,H=l[4];H>0;)for(H0;)for(G0;)for(F0;)for(E0;)for(D=f)return!0;k+=e}k+=a}k+=n}k+=u}k+=c}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N;for(y=(N=i(r.shape,r.strides)).sh,z=N.sx,t=d(r.dtype),q=r.offset,s=r.data,e=z[0],o=0,M=y[5];M>0;)for(M0;)for(L0;)for(K0;)for(J0;)for(I0;)for(H=f)return!0;A+=e}A+=a}A+=n}A+=u}A+=c}A+=p}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T;for(b=(T=i(r.shape,r.strides)).sh,B=T.sx,t=d(r.dtype),C=r.offset,s=r.data,e=B[0],o=0,S=b[6];S>0;)for(S0;)for(R0;)for(Q0;)for(O0;)for(N0;)for(M0;)for(L=f)return!0;D+=e}D+=a}D+=n}D+=u}D+=c}D+=p}D+=h}return!1},function(r,f){var o,t,s,e,a,n,d,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y;for(P=(Y=i(r.shape,r.strides)).sh,E=Y.sx,t=u(r.dtype),F=r.offset,s=r.data,e=E[0],o=0,X=P[7];X>0;)for(X0;)for(W0;)for(V0;)for(U0;)for(T0;)for(S0;)for(R0;)for(Q=f)return!0;G+=e}G+=a}G+=n}G+=d}G+=c}G+=p}G+=h}G+=v}return!1},function(r,f){var o,t,s,e,a,n,i,d,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y,Z,$,_,rr,fr;for(k=(fr=c(r.shape,r.strides)).sh,H=fr.sx,t=u(r.dtype),I=r.offset,s=r.data,e=H[0],o=0,rr=k[8];rr>0;)for(rr0;)for(_0;)for($0;)for(Z0;)for(Y0;)for(X0;)for(W0;)for(V0;)for(U=f)return!0;J+=e}J+=a}J+=n}J+=i}J+=d}J+=p}J+=h}J+=v}J+=m}return!1},function(r,f){var o,t,s,e,a,n,i,d,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y,Z,$,_,rr,fr,or,tr,sr,er,ar;for(q=(ar=c(r.shape,r.strides)).sh,K=ar.sx,t=u(r.dtype),L=r.offset,s=r.data,e=K[0],o=0,er=q[9];er>0;)for(er0;)for(sr0;)for(tr0;)for(or0;)for(fr0;)for(rr0;)for(_0;)for($0;)for(Z0;)for(Y=f)return!0;M+=e}M+=a}M+=n}M+=i}M+=d}M+=p}M+=h}M+=v}M+=m}M+=l}return!1}],z=[function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g;for(c=(g=i(r.shape,r.strides)).sh,v=g.sx,o=d(r.dtype),m=r.offset,s=r.data,a=v[0],e=r.accessors[0],t=0,b=c[1];b>0;)for(b0;)for(j=f)return!0;l+=a}l+=n}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q;for(h=(q=i(r.shape,r.strides)).sh,x=q.sx,o=d(r.dtype),y=r.offset,s=r.data,a=x[0],e=r.accessors[0],t=0,z=h[2];z>0;)for(z0;)for(k0;)for(w=f)return!0;j+=a}j+=n}j+=u}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E;for(m=(E=i(r.shape,r.strides)).sh,b=E.sx,o=d(r.dtype),g=r.offset,s=r.data,a=b[0],e=r.accessors[0],t=0,D=m[3];D>0;)for(D0;)for(C0;)for(B0;)for(A=f)return!0;P+=a}P+=n}P+=u}P+=c}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J;for(x=(J=i(r.shape,r.strides)).sh,w=J.sx,t=d(r.dtype),k=r.offset,s=r.data,a=w[0],e=r.accessors[0],o=0,I=x[4];I>0;)for(I0;)for(H0;)for(G0;)for(F0;)for(E=f)return!0;z+=a}z+=n}z+=u}z+=c}z+=p}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O;for(j=(O=i(r.shape,r.strides)).sh,q=O.sx,t=d(r.dtype),A=r.offset,s=r.data,a=q[0],e=r.accessors[0],o=0,N=j[5];N>0;)for(N0;)for(M0;)for(L0;)for(K0;)for(J0;)for(I=f)return!0;B+=a}B+=n}B+=u}B+=c}B+=p}B+=h}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U;for(g=(U=i(r.shape,r.strides)).sh,C=U.sx,t=d(r.dtype),D=r.offset,s=r.data,a=C[0],e=r.accessors[0],o=0,T=g[6];T>0;)for(T0;)for(S0;)for(R0;)for(Q0;)for(O0;)for(N0;)for(M=f)return!0;E+=a}E+=n}E+=u}E+=c}E+=p}E+=h}E+=v}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y,Z;for(w=(Z=i(r.shape,r.strides)).sh,F=Z.sx,t=d(r.dtype),G=r.offset,s=r.data,a=F[0],e=r.accessors[0],o=0,Y=w[7];Y>0;)for(Y0;)for(X0;)for(W0;)for(V0;)for(U0;)for(T0;)for(S0;)for(R=f)return!0;H+=a}H+=n}H+=u}H+=c}H+=p}H+=h}H+=v}H+=m}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y,Z,$,_,rr,fr,or;for(z=(or=i(r.shape,r.strides)).sh,I=or.sx,t=d(r.dtype),J=r.offset,s=r.data,a=I[0],e=r.accessors[0],o=0,fr=z[8];fr>0;)for(fr0;)for(rr0;)for(_0;)for($0;)for(Z0;)for(Y0;)for(X0;)for(W0;)for(V=f)return!0;K+=a}K+=n}K+=u}K+=c}K+=p}K+=h}K+=v}K+=m}K+=l}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y,Z,$,_,rr,fr,or,tr,sr,er,ar,nr;for(A=(nr=i(r.shape,r.strides)).sh,L=nr.sx,t=d(r.dtype),M=r.offset,s=r.data,a=L[0],e=r.accessors[0],o=0,ar=A[9];ar>0;)for(ar0;)for(er0;)for(sr0;)for(tr0;)for(or0;)for(fr0;)for(rr0;)for(_0;)for($0;)for(Z=f)return!0;N+=a}N+=n}N+=u}N+=c}N+=p}N+=h}N+=v}N+=m}N+=l}N+=x}return!1}],q=[function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b;for(u=(b=i(r.shape,r.strides)).sh,h=b.sx,t=d(r.dtype),v=r.offset,s=r.data,e=h[0],o=0,j=u[1];j>0;)for(j0;)for(y=f)return!0;m+=e}m+=a}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z;for(p=(z=i(r.shape,r.strides)).sh,l=z.sx,t=d(r.dtype),x=r.offset,s=r.data,e=l[0],o=0,k=p[2];k>0;)for(k0;)for(w0;)for(P=f)return!0;y+=e}y+=a}y+=n}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D;for(v=(D=i(r.shape,r.strides)).sh,j=D.sx,o=d(r.dtype),b=r.offset,s=r.data,e=j[0],t=0,C=v[3];C>0;)for(C0;)for(B0;)for(A0;)for(q=f)return!0;g+=e}g+=a}g+=n}g+=u}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I;for(l=(I=i(r.shape,r.strides)).sh,P=I.sx,o=d(r.dtype),w=r.offset,s=r.data,e=P[0],t=0,H=l[4];H>0;)for(H0;)for(G0;)for(F0;)for(E0;)for(D=f)return!0;k+=e}k+=a}k+=n}k+=u}k+=c}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N;for(y=(N=i(r.shape,r.strides)).sh,z=N.sx,t=d(r.dtype),q=r.offset,s=r.data,e=z[0],o=0,M=y[5];M>0;)for(M0;)for(L0;)for(K0;)for(J0;)for(I0;)for(H=f)return!0;A+=e}A+=a}A+=n}A+=u}A+=c}A+=p}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T;for(b=(T=i(r.shape,r.strides)).sh,B=T.sx,t=d(r.dtype),C=r.offset,s=r.data,e=B[0],o=0,S=b[6];S>0;)for(S0;)for(R0;)for(Q0;)for(O0;)for(N0;)for(M0;)for(L=f)return!0;D+=e}D+=a}D+=n}D+=u}D+=c}D+=p}D+=h}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y;for(P=(Y=i(r.shape,r.strides)).sh,E=Y.sx,t=d(r.dtype),F=r.offset,s=r.data,e=E[0],o=0,X=P[7];X>0;)for(X0;)for(W0;)for(V0;)for(U0;)for(T0;)for(S0;)for(R0;)for(Q=f)return!0;G+=e}G+=a}G+=n}G+=u}G+=c}G+=p}G+=h}G+=v}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y,Z,$,_,rr,fr;for(k=(fr=i(r.shape,r.strides)).sh,H=fr.sx,t=d(r.dtype),I=r.offset,s=r.data,e=H[0],o=0,rr=k[8];rr>0;)for(rr0;)for(_0;)for($0;)for(Z0;)for(Y0;)for(X0;)for(W0;)for(V0;)for(U=f)return!0;J+=e}J+=a}J+=n}J+=u}J+=c}J+=p}J+=h}J+=v}J+=m}return!1},function(r,f){var o,t,s,e,a,n,u,c,p,h,v,m,l,x,y,j,b,g,P,w,k,z,q,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,Q,R,S,T,U,V,W,X,Y,Z,$,_,rr,fr,or,tr,sr,er,ar;for(q=(ar=i(r.shape,r.strides)).sh,K=ar.sx,t=d(r.dtype),L=r.offset,s=r.data,e=K[0],o=0,er=q[9];er>0;)for(er0;)for(sr0;)for(tr0;)for(or0;)for(fr0;)for(rr0;)for(_0;)for($0;)for(Z0;)for(Y=f)return!0;M+=e}M+=a}M+=n}M+=u}M+=c}M+=p}M+=h}M+=v}M+=m}M+=l}return!1}],A=g.length-1;function B(i){var d,u,c,p,h,v,m,x,j,B,C,D,E,F;if(C=s(i[0]),D=s(i[1]),u=(p=C.shape).length,B=D.accessors[0](D.data,D.offset),f(C.data)?(C.data=a(C.data,0),C.accessorProtocol=!1):r(C.data)&&(C.data=e(C.data,0),C.accessorProtocol=!1,C.strides=n(u,2,C.strides,1),C.offset*=2,d=!0),0===u)return C.accessorProtocol?P[u](C,B):d?w[u](C,B):g[u](C,B);for(v=1,j=0,F=0;F} 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"],"names":["MODE","somend","x","n","count","xbuf","ordx","len","get","sh","sx","ox","i","shape","numel","data","strides","offset","order","accessors","vind2bind","ix","SOME","dx0","S0","i0","dx1","S1","i1","strides2order","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_SOME","accessorsomend","COMPLEX_SOME","complexsomend","BLOCKED_SOME","bsize","ox1","s0","s1","j0","j1","o","loopOrder","blockSize","dtype","ox2","s2","j2","ox3","s3","j3","ox4","s4","j4","ox5","s5","j5","ox6","s6","j6","ox7","s7","j7","ox8","s8","j8","ox9","s9","j9","BLOCKED_ACCESSOR_SOME","BLOCKED_COMPLEX_SOME","MAX_DIMS","length","some","arrays","isCmplx","ndims","xmmv","shx","iox","ns","N","d","ndarray2object","isBooleanArray","reinterpretBoolean","accessorProtocol","isComplexArray","reinterpretComplex","gscal","iterationOrder","minmaxViewBufferIndex"],"mappings":"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"} \ No newline at end of file diff --git a/lib/0d.js b/lib/0d.js deleted file mode 100644 index 14d74ed..0000000 --- a/lib/0d.js +++ /dev/null @@ -1,76 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* // Create a data buffer: -* var xbuf = new Float64Array( [ 1.0, 2.0 ] ); -* -* // Define the shape of the input array: -* var shape = []; -* -* // Define the array strides: -* var sx = [ 0 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some0d( x, 1 ); -* // returns true -*/ -function some0d( x, n ) { - if ( n <= 1 && x.data[ x.offset ] ) { - return true; - } - return false; -} - - -// EXPORTS // - -module.exports = some0d; diff --git a/lib/0d_accessors.js b/lib/0d_accessors.js deleted file mode 100644 index aa94e6c..0000000 --- a/lib/0d_accessors.js +++ /dev/null @@ -1,79 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0 ] ); -* -* // Define the shape of the input array: -* var shape = []; -* -* // Define the array strides: -* var sx = [ 0 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some0d( x, 1 ); -* // returns true -*/ -function some0d( x, n ) { - if ( n <= 1 && x.accessors[ 0 ]( x.data, x.offset ) ) { - return true; - } - return false; -} - - -// EXPORTS // - -module.exports = some0d; diff --git a/lib/0d_complex.js b/lib/0d_complex.js deleted file mode 100644 index eabdaf2..0000000 --- a/lib/0d_complex.js +++ /dev/null @@ -1,76 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* -* // Create a data buffer: -* var xbuf = new Float64Array( [ 1.0, 2.0 ] ); -* -* // Define the shape of the input array: -* var shape = []; -* -* // Define the array strides: -* var sx = [ 0 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some0d( x, 1 ); -* // returns true -*/ -function some0d( x, n ) { - if ( n <= 1 && ( x.data[ x.offset ] || x.data[ x.offset+1 ] ) ) { - return true; - } - return false; -} - - -// EXPORTS // - -module.exports = some0d; diff --git a/lib/10d.js b/lib/10d.js deleted file mode 100644 index 76f3323..0000000 --- a/lib/10d.js +++ /dev/null @@ -1,212 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some10d( x, 4 ); -* // returns true -*/ -function some10d( x, n ) { // eslint-disable-line max-statements - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var dx9; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var S8; - var S9; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var i9; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 9 ]; - S1 = sh[ 8 ]; - S2 = sh[ 7 ]; - S3 = sh[ 6 ]; - S4 = sh[ 5 ]; - S5 = sh[ 4 ]; - S6 = sh[ 3 ]; - S7 = sh[ 2 ]; - S8 = sh[ 1 ]; - S9 = sh[ 0 ]; - dx0 = sx[ 9 ]; // offset increment for innermost loop - dx1 = sx[ 8 ] - ( S0*sx[9] ); - dx2 = sx[ 7 ] - ( S1*sx[8] ); - dx3 = sx[ 6 ] - ( S2*sx[7] ); - dx4 = sx[ 5 ] - ( S3*sx[6] ); - dx5 = sx[ 4 ] - ( S4*sx[5] ); - dx6 = sx[ 3 ] - ( S5*sx[4] ); - dx7 = sx[ 2 ] - ( S6*sx[3] ); - dx8 = sx[ 1 ] - ( S7*sx[2] ); - dx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - S8 = sh[ 8 ]; - S9 = sh[ 9 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); - dx8 = sx[ 8 ] - ( S7*sx[7] ); - dx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i9 = 0; i9 < S9; i9++ ) { - for ( i8 = 0; i8 < S8; i8++ ) { - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - ix += dx9; - } - return false; -} - - -// EXPORTS // - -module.exports = some10d; diff --git a/lib/10d_accessors.js b/lib/10d_accessors.js deleted file mode 100644 index 7af02d3..0000000 --- a/lib/10d_accessors.js +++ /dev/null @@ -1,219 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some10d( x, 4 ); -* // returns true -*/ -function some10d( x, n ) { // eslint-disable-line max-statements - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var dx9; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var S8; - var S9; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var i9; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 9 ]; - S1 = sh[ 8 ]; - S2 = sh[ 7 ]; - S3 = sh[ 6 ]; - S4 = sh[ 5 ]; - S5 = sh[ 4 ]; - S6 = sh[ 3 ]; - S7 = sh[ 2 ]; - S8 = sh[ 1 ]; - S9 = sh[ 0 ]; - dx0 = sx[ 9 ]; // offset increment for innermost loop - dx1 = sx[ 8 ] - ( S0*sx[9] ); - dx2 = sx[ 7 ] - ( S1*sx[8] ); - dx3 = sx[ 6 ] - ( S2*sx[7] ); - dx4 = sx[ 5 ] - ( S3*sx[6] ); - dx5 = sx[ 4 ] - ( S4*sx[5] ); - dx6 = sx[ 3 ] - ( S5*sx[4] ); - dx7 = sx[ 2 ] - ( S6*sx[3] ); - dx8 = sx[ 1 ] - ( S7*sx[2] ); - dx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - S8 = sh[ 8 ]; - S9 = sh[ 9 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); - dx8 = sx[ 8 ] - ( S7*sx[7] ); - dx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i9 = 0; i9 < S9; i9++ ) { - for ( i8 = 0; i8 < S8; i8++ ) { - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - ix += dx9; - } - return false; -} - - -// EXPORTS // - -module.exports = some10d; diff --git a/lib/10d_blocked.js b/lib/10d_blocked.js deleted file mode 100644 index 0111f62..0000000 --- a/lib/10d_blocked.js +++ /dev/null @@ -1,312 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome10d( x, 4 ); -* // returns true -*/ -function blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var dx9; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var ox8; - var ox9; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var s8; - var s9; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var i9; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var j8; - var j9; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j9 = sh[9]; j9 > 0; ) { - if ( j9 < bsize ) { - s9 = j9; - j9 = 0; - } else { - s9 = bsize; - j9 -= bsize; - } - ox9 = ox + ( j9*sx[9] ); - for ( j8 = sh[8]; j8 > 0; ) { - if ( j8 < bsize ) { - s8 = j8; - j8 = 0; - } else { - s8 = bsize; - j8 -= bsize; - } - dx9 = sx[9] - ( s8*sx[8] ); - ox8 = ox9 + ( j8*sx[8] ); - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - dx8 = sx[8] - ( s7*sx[7] ); - ox7 = ox8 + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i9 = 0; i9 < s9; i9++ ) { - for ( i8 = 0; i8 < s8; i8++ ) { - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - ix += dx9; - } - } - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome10d; diff --git a/lib/10d_blocked_accessors.js b/lib/10d_blocked_accessors.js deleted file mode 100644 index 74c262c..0000000 --- a/lib/10d_blocked_accessors.js +++ /dev/null @@ -1,319 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome10d( x, 4 ); -* // returns true -*/ -function blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function - var count; - var bsize; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var dx9; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var ox8; - var ox9; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var s8; - var s9; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var i9; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var j8; - var j9; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j9 = sh[9]; j9 > 0; ) { - if ( j9 < bsize ) { - s9 = j9; - j9 = 0; - } else { - s9 = bsize; - j9 -= bsize; - } - ox9 = ox + ( j9*sx[9] ); - for ( j8 = sh[8]; j8 > 0; ) { - if ( j8 < bsize ) { - s8 = j8; - j8 = 0; - } else { - s8 = bsize; - j8 -= bsize; - } - dx9 = sx[9] - ( s8*sx[8] ); - ox8 = ox9 + ( j8*sx[8] ); - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - dx8 = sx[8] - ( s7*sx[7] ); - ox7 = ox8 + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i9 = 0; i9 < s9; i9++ ) { - for ( i8 = 0; i8 < s8; i8++ ) { - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - ix += dx9; - } - } - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome10d; diff --git a/lib/10d_blocked_complex.js b/lib/10d_blocked_complex.js deleted file mode 100644 index 6169677..0000000 --- a/lib/10d_blocked_complex.js +++ /dev/null @@ -1,312 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome10d( x, 4 ); -* // returns true -*/ -function blockedsome10d( x, n ) { // eslint-disable-line max-statements, max-lines-per-function - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var dx9; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var ox8; - var ox9; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var s8; - var s9; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var i9; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var j8; - var j9; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j9 = sh[9]; j9 > 0; ) { - if ( j9 < bsize ) { - s9 = j9; - j9 = 0; - } else { - s9 = bsize; - j9 -= bsize; - } - ox9 = ox + ( j9*sx[9] ); - for ( j8 = sh[8]; j8 > 0; ) { - if ( j8 < bsize ) { - s8 = j8; - j8 = 0; - } else { - s8 = bsize; - j8 -= bsize; - } - dx9 = sx[9] - ( s8*sx[8] ); - ox8 = ox9 + ( j8*sx[8] ); - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - dx8 = sx[8] - ( s7*sx[7] ); - ox7 = ox8 + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i9 = 0; i9 < s9; i9++ ) { - for ( i8 = 0; i8 < s8; i8++ ) { - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - ix += dx9; - } - } - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome10d; diff --git a/lib/10d_complex.js b/lib/10d_complex.js deleted file mode 100644 index 7613f8f..0000000 --- a/lib/10d_complex.js +++ /dev/null @@ -1,212 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some10d( x, 4 ); -* // returns true -*/ -function some10d( x, n ) { // eslint-disable-line max-statements - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var dx9; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var S8; - var S9; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var i9; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 9 ]; - S1 = sh[ 8 ]; - S2 = sh[ 7 ]; - S3 = sh[ 6 ]; - S4 = sh[ 5 ]; - S5 = sh[ 4 ]; - S6 = sh[ 3 ]; - S7 = sh[ 2 ]; - S8 = sh[ 1 ]; - S9 = sh[ 0 ]; - dx0 = sx[ 9 ]; // offset increment for innermost loop - dx1 = sx[ 8 ] - ( S0*sx[9] ); - dx2 = sx[ 7 ] - ( S1*sx[8] ); - dx3 = sx[ 6 ] - ( S2*sx[7] ); - dx4 = sx[ 5 ] - ( S3*sx[6] ); - dx5 = sx[ 4 ] - ( S4*sx[5] ); - dx6 = sx[ 3 ] - ( S5*sx[4] ); - dx7 = sx[ 2 ] - ( S6*sx[3] ); - dx8 = sx[ 1 ] - ( S7*sx[2] ); - dx9 = sx[ 0 ] - ( S8*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - S8 = sh[ 8 ]; - S9 = sh[ 9 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); - dx8 = sx[ 8 ] - ( S7*sx[7] ); - dx9 = sx[ 9 ] - ( S8*sx[8] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i9 = 0; i9 < S9; i9++ ) { - for ( i8 = 0; i8 < S8; i8++ ) { - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - ix += dx9; - } - return false; -} - - -// EXPORTS // - -module.exports = some10d; diff --git a/lib/1d.js b/lib/1d.js deleted file mode 100644 index 7e930f5..0000000 --- a/lib/1d.js +++ /dev/null @@ -1,105 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 4 ]; -* -* // Define the array strides: -* var sx = [ 2 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some1d( x, 4 ); -* // returns true -*/ -function some1d( x, n ) { - var count; - var xbuf; - var dx0; - var S0; - var ix; - var i0; - - // Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables: dimensions and loop offset (pointer) increments: - S0 = x.shape[ 0 ]; - dx0 = x.strides[ 0 ]; - - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - return false; -} - - -// EXPORTS // - -module.exports = some1d; diff --git a/lib/1d_accessors.js b/lib/1d_accessors.js deleted file mode 100644 index 083765d..0000000 --- a/lib/1d_accessors.js +++ /dev/null @@ -1,112 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 4 ]; -* -* // Define the array strides: -* var sx = [ 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some1d( x, 4 ); -* // returns true -*/ -function some1d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var S0; - var ix; - var i0; - - // Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables: dimensions and loop offset (pointer) increments... - S0 = x.shape[ 0 ]; - dx0 = x.strides[ 0 ]; - - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - return false; -} - - -// EXPORTS // - -module.exports = some1d; diff --git a/lib/1d_complex.js b/lib/1d_complex.js deleted file mode 100644 index c8342b2..0000000 --- a/lib/1d_complex.js +++ /dev/null @@ -1,105 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 4 ]; -* -* // Define the array strides: -* var sx = [ 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some1d( x, 4 ); -* // returns true -*/ -function some1d( x, n ) { - var count; - var xbuf; - var dx0; - var S0; - var ix; - var i0; - - // Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables: dimensions and loop offset (pointer) increments: - S0 = x.shape[ 0 ]; - dx0 = x.strides[ 0 ]; - - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - return false; -} - - -// EXPORTS // - -module.exports = some1d; diff --git a/lib/2d.js b/lib/2d.js deleted file mode 100644 index 210fd2f..0000000 --- a/lib/2d.js +++ /dev/null @@ -1,130 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some2d( x, 4 ); -* // returns true -*/ -function some2d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var sh; - var S0; - var S1; - var sx; - var ix; - var i0; - var i1; - - // Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 1 ]; - S1 = sh[ 0 ]; - dx0 = sx[ 1 ]; // offset increment for innermost loop - dx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - return false; -} - - -// EXPORTS // - -module.exports = some2d; diff --git a/lib/2d_accessors.js b/lib/2d_accessors.js deleted file mode 100644 index 37f0b26..0000000 --- a/lib/2d_accessors.js +++ /dev/null @@ -1,137 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some2d( x, 4 ); -* // returns true -*/ -function some2d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var sh; - var S0; - var S1; - var sx; - var ix; - var i0; - var i1; - - // Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 1 ]; - S1 = sh[ 0 ]; - dx0 = sx[ 1 ]; // offset increment for innermost loop - dx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - return false; -} - - -// EXPORTS // - -module.exports = some2d; diff --git a/lib/2d_blocked.js b/lib/2d_blocked.js deleted file mode 100644 index 28b33ee..0000000 --- a/lib/2d_blocked.js +++ /dev/null @@ -1,160 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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'; - -/* eslint-disable max-depth */ - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome2d( x, 4 ); -* // returns true -*/ -function blockedsome2d( x, n ) { - var bsize; - var count; - var xbuf; - var dx0; - var dx1; - var ox1; - var sh; - var s0; - var s1; - var sx; - var ox; - var ix; - var i0; - var i1; - var j0; - var j1; - var o; - - // Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - ox1 = ox + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome2d; diff --git a/lib/2d_blocked_accessors.js b/lib/2d_blocked_accessors.js deleted file mode 100644 index 79f58cd..0000000 --- a/lib/2d_blocked_accessors.js +++ /dev/null @@ -1,167 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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'; - -/* eslint-disable max-depth */ - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome2d( x, 4 ); -* // returns true -*/ -function blockedsome2d( x, n ) { - var bsize; - var count; - var xbuf; - var get; - var dx0; - var dx1; - var ox1; - var sh; - var s0; - var s1; - var sx; - var ox; - var ix; - var i0; - var i1; - var j0; - var j1; - var o; - - // Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - ox1 = ox + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome2d; diff --git a/lib/2d_blocked_complex.js b/lib/2d_blocked_complex.js deleted file mode 100644 index bb2bb55..0000000 --- a/lib/2d_blocked_complex.js +++ /dev/null @@ -1,160 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome2d( x, 4 ); -* // returns true -*/ -function blockedsome2d( x, n ) { - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var ox1; - var sh; - var s0; - var s1; - var sx; - var ox; - var ix; - var i0; - var i1; - var j0; - var j1; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - ox1 = ox + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome2d; diff --git a/lib/2d_complex.js b/lib/2d_complex.js deleted file mode 100644 index 44ca3e5..0000000 --- a/lib/2d_complex.js +++ /dev/null @@ -1,130 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some2d( x, 4 ); -* // returns true -*/ -function some2d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var sh; - var S0; - var S1; - var sx; - var ix; - var i0; - var i1; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 1 ]; - S1 = sh[ 0 ]; - dx0 = sx[ 1 ]; // offset increment for innermost loop - dx1 = sx[ 0 ] - ( S0*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - return false; -} - - -// EXPORTS // - -module.exports = some2d; diff --git a/lib/3d.js b/lib/3d.js deleted file mode 100644 index 75b77ea..0000000 --- a/lib/3d.js +++ /dev/null @@ -1,140 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 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 an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some3d( x, 4 ); -* // returns true -*/ -function some3d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var sh; - var S0; - var S1; - var S2; - var sx; - var ix; - var i0; - var i1; - var i2; - - // Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 2 ]; - S1 = sh[ 1 ]; - S2 = sh[ 0 ]; - dx0 = sx[ 2 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[2] ); - dx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - return false; -} - - -// EXPORTS // - -module.exports = some3d; diff --git a/lib/3d_accessors.js b/lib/3d_accessors.js deleted file mode 100644 index 103290d..0000000 --- a/lib/3d_accessors.js +++ /dev/null @@ -1,147 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some3d( x, 4 ); -* // returns true -*/ -function some3d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var sh; - var S0; - var S1; - var S2; - var sx; - var ix; - var i0; - var i1; - var i2; - - // Note on variable naming convention: S#, dx#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 2 ]; - S1 = sh[ 1 ]; - S2 = sh[ 0 ]; - dx0 = sx[ 2 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[2] ); - dx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - return false; -} - - -// EXPORTS // - -module.exports = some3d; diff --git a/lib/3d_blocked.js b/lib/3d_blocked.js deleted file mode 100644 index 013ee1d..0000000 --- a/lib/3d_blocked.js +++ /dev/null @@ -1,179 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 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 an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome3d( x, 4 ); -* // returns true -*/ -function blockedsome3d( x, n ) { - var bsize; - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var ox1; - var ox2; - var sh; - var s0; - var s1; - var s2; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var j0; - var j1; - var j2; - var o; - - // Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - ox2 = ox + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome3d; diff --git a/lib/3d_blocked_accessors.js b/lib/3d_blocked_accessors.js deleted file mode 100644 index 9388f08..0000000 --- a/lib/3d_blocked_accessors.js +++ /dev/null @@ -1,186 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome3d( x, 4 ); -* // returns true -*/ -function blockedsome3d( x, n ) { - var bsize; - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var ox1; - var ox2; - var sh; - var s0; - var s1; - var s2; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var j0; - var j1; - var j2; - var o; - - // Note on variable naming convention: s#, dx#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - ox2 = ox + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome3d; diff --git a/lib/3d_blocked_complex.js b/lib/3d_blocked_complex.js deleted file mode 100644 index 42d004f..0000000 --- a/lib/3d_blocked_complex.js +++ /dev/null @@ -1,179 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray is truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome3d( x, 4 ); -* // returns true -*/ -function blockedsome3d( x, n ) { - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var ox1; - var ox2; - var sh; - var s0; - var s1; - var s2; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var j0; - var j1; - var j2; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - ox2 = ox + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome3d; diff --git a/lib/3d_complex.js b/lib/3d_complex.js deleted file mode 100644 index 888e376..0000000 --- a/lib/3d_complex.js +++ /dev/null @@ -1,140 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some3d( x, 4 ); -* // returns true -*/ -function some3d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var sh; - var S0; - var S1; - var S2; - var sx; - var ix; - var i0; - var i1; - var i2; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 2 ]; - S1 = sh[ 1 ]; - S2 = sh[ 0 ]; - dx0 = sx[ 2 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[2] ); - dx2 = sx[ 0 ] - ( S1*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - return false; -} - - -// EXPORTS // - -module.exports = some3d; diff --git a/lib/4d.js b/lib/4d.js deleted file mode 100644 index c95ddd3..0000000 --- a/lib/4d.js +++ /dev/null @@ -1,152 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some4d( x, 4 ); -* // returns true -*/ -function some4d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var sh; - var S0; - var S1; - var S2; - var S3; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 3 ]; - S1 = sh[ 2 ]; - S2 = sh[ 1 ]; - S3 = sh[ 0 ]; - dx0 = sx[ 3 ]; // offset increment for innermost loop - dx1 = sx[ 2 ] - ( S0*sx[3] ); - dx2 = sx[ 1 ] - ( S1*sx[2] ); - dx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - return false; -} - - -// EXPORTS // - -module.exports = some4d; diff --git a/lib/4d_accessors.js b/lib/4d_accessors.js deleted file mode 100644 index 6acb335..0000000 --- a/lib/4d_accessors.js +++ /dev/null @@ -1,159 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some4d( x, 4 ); -* // returns true -*/ -function some4d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var sh; - var S0; - var S1; - var S2; - var S3; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 3 ]; - S1 = sh[ 2 ]; - S2 = sh[ 1 ]; - S3 = sh[ 0 ]; - dx0 = sx[ 3 ]; // offset increment for innermost loop - dx1 = sx[ 2 ] - ( S0*sx[3] ); - dx2 = sx[ 1 ] - ( S1*sx[2] ); - dx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - return false; -} - - -// EXPORTS // - -module.exports = some4d; diff --git a/lib/4d_blocked.js b/lib/4d_blocked.js deleted file mode 100644 index 2cc3901..0000000 --- a/lib/4d_blocked.js +++ /dev/null @@ -1,198 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome4d( x, 4 ); -* // returns true -*/ -function blockedsome4d( x, n ) { - var bsize; - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var ox1; - var ox2; - var ox3; - var sh; - var s0; - var s1; - var s2; - var s3; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var j0; - var j1; - var j2; - var j3; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - ox3 = ox + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome4d; diff --git a/lib/4d_blocked_accessors.js b/lib/4d_blocked_accessors.js deleted file mode 100644 index dd92e5c..0000000 --- a/lib/4d_blocked_accessors.js +++ /dev/null @@ -1,205 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome4d( x, 4 ); -* // returns true -*/ -function blockedsome4d( x, n ) { - var bsize; - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var ox1; - var ox2; - var ox3; - var sh; - var s0; - var s1; - var s2; - var s3; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var j0; - var j1; - var j2; - var j3; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - ox3 = ox + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome4d; diff --git a/lib/4d_blocked_complex.js b/lib/4d_blocked_complex.js deleted file mode 100644 index dbb811b..0000000 --- a/lib/4d_blocked_complex.js +++ /dev/null @@ -1,198 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome4d( x, 4 ); -* // returns true -*/ -function blockedsome4d( x, n ) { - var bsize; - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var ox1; - var ox2; - var ox3; - var sh; - var s0; - var s1; - var s2; - var s3; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var j0; - var j1; - var j2; - var j3; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - ox3 = ox + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome4d; diff --git a/lib/4d_complex.js b/lib/4d_complex.js deleted file mode 100644 index 5f92e02..0000000 --- a/lib/4d_complex.js +++ /dev/null @@ -1,152 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some4d( x, 4 ); -* // returns true -*/ -function some4d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var sh; - var S0; - var S1; - var S2; - var S3; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 3 ]; - S1 = sh[ 2 ]; - S2 = sh[ 1 ]; - S3 = sh[ 0 ]; - dx0 = sx[ 3 ]; // offset increment for innermost loop - dx1 = sx[ 2 ] - ( S0*sx[3] ); - dx2 = sx[ 1 ] - ( S1*sx[2] ); - dx3 = sx[ 0 ] - ( S2*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - return false; -} - - -// EXPORTS // - -module.exports = some4d; diff --git a/lib/5d.js b/lib/5d.js deleted file mode 100644 index 589546f..0000000 --- a/lib/5d.js +++ /dev/null @@ -1,162 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some5d( x, 4 ); -* // returns true -*/ -function some5d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 4 ]; - S1 = sh[ 3 ]; - S2 = sh[ 2 ]; - S3 = sh[ 1 ]; - S4 = sh[ 0 ]; - dx0 = sx[ 4 ]; // offset increment for innermost loop - dx1 = sx[ 3 ] - ( S0*sx[4] ); - dx2 = sx[ 2 ] - ( S1*sx[3] ); - dx3 = sx[ 1 ] - ( S2*sx[2] ); - dx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - return false; -} - - -// EXPORTS // - -module.exports = some5d; diff --git a/lib/5d_accessors.js b/lib/5d_accessors.js deleted file mode 100644 index 79be9eb..0000000 --- a/lib/5d_accessors.js +++ /dev/null @@ -1,169 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some5d( x, 4 ); -* // returns true -*/ -function some5d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 4 ]; - S1 = sh[ 3 ]; - S2 = sh[ 2 ]; - S3 = sh[ 1 ]; - S4 = sh[ 0 ]; - dx0 = sx[ 4 ]; // offset increment for innermost loop - dx1 = sx[ 3 ] - ( S0*sx[4] ); - dx2 = sx[ 2 ] - ( S1*sx[3] ); - dx3 = sx[ 1 ] - ( S2*sx[2] ); - dx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - return false; -} - - -// EXPORTS // - -module.exports = some5d; diff --git a/lib/5d_blocked.js b/lib/5d_blocked.js deleted file mode 100644 index 5324ed0..0000000 --- a/lib/5d_blocked.js +++ /dev/null @@ -1,217 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome5d( x, 4 ); -* // returns true -*/ -function blockedsome5d( x, n ) { - var bsize; - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var ox1; - var ox2; - var ox3; - var ox4; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var j0; - var j1; - var j2; - var j3; - var j4; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - ox4 = ox + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome5d; diff --git a/lib/5d_blocked_accessors.js b/lib/5d_blocked_accessors.js deleted file mode 100644 index c4308d5..0000000 --- a/lib/5d_blocked_accessors.js +++ /dev/null @@ -1,224 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome5d( x, 4 ); -* // returns true -*/ -function blockedsome5d( x, n ) { - var count; - var bsize; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var ox1; - var ox2; - var ox3; - var ox4; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var j0; - var j1; - var j2; - var j3; - var j4; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - ox4 = ox + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome5d; diff --git a/lib/5d_blocked_complex.js b/lib/5d_blocked_complex.js deleted file mode 100644 index 37a5a80..0000000 --- a/lib/5d_blocked_complex.js +++ /dev/null @@ -1,217 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome5d( x, 4 ); -* // returns true -*/ -function blockedsome5d( x, n ) { - var bsize; - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var ox1; - var ox2; - var ox3; - var ox4; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var j0; - var j1; - var j2; - var j3; - var j4; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - ox4 = ox + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome5d; diff --git a/lib/5d_complex.js b/lib/5d_complex.js deleted file mode 100644 index 95d4f4e..0000000 --- a/lib/5d_complex.js +++ /dev/null @@ -1,162 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some5d( x, 4 ); -* // returns true -*/ -function some5d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 4 ]; - S1 = sh[ 3 ]; - S2 = sh[ 2 ]; - S3 = sh[ 1 ]; - S4 = sh[ 0 ]; - dx0 = sx[ 4 ]; // offset increment for innermost loop - dx1 = sx[ 3 ] - ( S0*sx[4] ); - dx2 = sx[ 2 ] - ( S1*sx[3] ); - dx3 = sx[ 1 ] - ( S2*sx[2] ); - dx4 = sx[ 0 ] - ( S3*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - return false; -} - - -// EXPORTS // - -module.exports = some5d; diff --git a/lib/6d.js b/lib/6d.js deleted file mode 100644 index 57b2366..0000000 --- a/lib/6d.js +++ /dev/null @@ -1,172 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some6d( x, 4 ); -* // returns true -*/ -function some6d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 5 ]; - S1 = sh[ 4 ]; - S2 = sh[ 3 ]; - S3 = sh[ 2 ]; - S4 = sh[ 1 ]; - S5 = sh[ 0 ]; - dx0 = sx[ 5 ]; // offset increment for innermost loop - dx1 = sx[ 4 ] - ( S0*sx[5] ); - dx2 = sx[ 3 ] - ( S1*sx[4] ); - dx3 = sx[ 2 ] - ( S2*sx[3] ); - dx4 = sx[ 1 ] - ( S3*sx[2] ); - dx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - return false; -} - - -// EXPORTS // - -module.exports = some6d; diff --git a/lib/6d_accessors.js b/lib/6d_accessors.js deleted file mode 100644 index 65db36e..0000000 --- a/lib/6d_accessors.js +++ /dev/null @@ -1,179 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some6d( x, 4 ); -* // returns true -*/ -function some6d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 5 ]; - S1 = sh[ 4 ]; - S2 = sh[ 3 ]; - S3 = sh[ 2 ]; - S4 = sh[ 1 ]; - S5 = sh[ 0 ]; - dx0 = sx[ 5 ]; // offset increment for innermost loop - dx1 = sx[ 4 ] - ( S0*sx[5] ); - dx2 = sx[ 3 ] - ( S1*sx[4] ); - dx3 = sx[ 2 ] - ( S2*sx[3] ); - dx4 = sx[ 1 ] - ( S3*sx[2] ); - dx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - return false; -} - - -// EXPORTS // - -module.exports = some6d; diff --git a/lib/6d_blocked.js b/lib/6d_blocked.js deleted file mode 100644 index 642c90d..0000000 --- a/lib/6d_blocked.js +++ /dev/null @@ -1,236 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome6d( x, 4 ); -* // returns true -*/ -function blockedsome6d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - ox5 = ox + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome6d; diff --git a/lib/6d_blocked_accessors.js b/lib/6d_blocked_accessors.js deleted file mode 100644 index 47d6a8d..0000000 --- a/lib/6d_blocked_accessors.js +++ /dev/null @@ -1,243 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome6d( x, 4 ); -* // returns true -*/ -function blockedsome6d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - ox5 = ox + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome6d; diff --git a/lib/6d_blocked_complex.js b/lib/6d_blocked_complex.js deleted file mode 100644 index 593b0fe..0000000 --- a/lib/6d_blocked_complex.js +++ /dev/null @@ -1,236 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome6d( x, 4 ); -* // returns true -*/ -function blockedsome6d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - ox5 = ox + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome6d; diff --git a/lib/6d_complex.js b/lib/6d_complex.js deleted file mode 100644 index 6af5866..0000000 --- a/lib/6d_complex.js +++ /dev/null @@ -1,172 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some6d( x, 4 ); -* // returns true -*/ -function some6d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 5 ]; - S1 = sh[ 4 ]; - S2 = sh[ 3 ]; - S3 = sh[ 2 ]; - S4 = sh[ 1 ]; - S5 = sh[ 0 ]; - dx0 = sx[ 5 ]; // offset increment for innermost loop - dx1 = sx[ 4 ] - ( S0*sx[5] ); - dx2 = sx[ 3 ] - ( S1*sx[4] ); - dx3 = sx[ 2 ] - ( S2*sx[3] ); - dx4 = sx[ 1 ] - ( S3*sx[2] ); - dx5 = sx[ 0 ] - ( S4*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - return false; -} - - -// EXPORTS // - -module.exports = some6d; diff --git a/lib/7d.js b/lib/7d.js deleted file mode 100644 index d0babe6..0000000 --- a/lib/7d.js +++ /dev/null @@ -1,182 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some7d( x, 4 ); -* // returns true -*/ -function some7d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 6 ]; - S1 = sh[ 5 ]; - S2 = sh[ 4 ]; - S3 = sh[ 3 ]; - S4 = sh[ 2 ]; - S5 = sh[ 1 ]; - S6 = sh[ 0 ]; - dx0 = sx[ 6 ]; // offset increment for innermost loop - dx1 = sx[ 5 ] - ( S0*sx[6] ); - dx2 = sx[ 4 ] - ( S1*sx[5] ); - dx3 = sx[ 3 ] - ( S2*sx[4] ); - dx4 = sx[ 2 ] - ( S3*sx[3] ); - dx5 = sx[ 1 ] - ( S4*sx[2] ); - dx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - return false; -} - - -// EXPORTS // - -module.exports = some7d; diff --git a/lib/7d_accessors.js b/lib/7d_accessors.js deleted file mode 100644 index 04621a4..0000000 --- a/lib/7d_accessors.js +++ /dev/null @@ -1,189 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some7d( x, 4 ); -* // returns true -*/ -function some7d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 6 ]; - S1 = sh[ 5 ]; - S2 = sh[ 4 ]; - S3 = sh[ 3 ]; - S4 = sh[ 2 ]; - S5 = sh[ 1 ]; - S6 = sh[ 0 ]; - dx0 = sx[ 6 ]; // offset increment for innermost loop - dx1 = sx[ 5 ] - ( S0*sx[6] ); - dx2 = sx[ 4 ] - ( S1*sx[5] ); - dx3 = sx[ 3 ] - ( S2*sx[4] ); - dx4 = sx[ 2 ] - ( S3*sx[3] ); - dx5 = sx[ 1 ] - ( S4*sx[2] ); - dx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - return false; -} - - -// EXPORTS // - -module.exports = some7d; diff --git a/lib/7d_blocked.js b/lib/7d_blocked.js deleted file mode 100644 index 185c3a0..0000000 --- a/lib/7d_blocked.js +++ /dev/null @@ -1,255 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome7d( x, 4 ); -* // returns true -*/ -function blockedsome7d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - ox6 = ox + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome7d; diff --git a/lib/7d_blocked_accessors.js b/lib/7d_blocked_accessors.js deleted file mode 100644 index 0fe98a1..0000000 --- a/lib/7d_blocked_accessors.js +++ /dev/null @@ -1,262 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome7d( x, 4 ); -* // returns true -*/ -function blockedsome7d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - ox6 = ox + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome7d; diff --git a/lib/7d_blocked_complex.js b/lib/7d_blocked_complex.js deleted file mode 100644 index 3f49bf9..0000000 --- a/lib/7d_blocked_complex.js +++ /dev/null @@ -1,255 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome7d( x, 4 ); -* // returns true -*/ -function blockedsome7d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - ox6 = ox + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome7d; diff --git a/lib/7d_complex.js b/lib/7d_complex.js deleted file mode 100644 index efd2a79..0000000 --- a/lib/7d_complex.js +++ /dev/null @@ -1,182 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some7d( x, 4 ); -* // returns true -*/ -function some7d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 6 ]; - S1 = sh[ 5 ]; - S2 = sh[ 4 ]; - S3 = sh[ 3 ]; - S4 = sh[ 2 ]; - S5 = sh[ 1 ]; - S6 = sh[ 0 ]; - dx0 = sx[ 6 ]; // offset increment for innermost loop - dx1 = sx[ 5 ] - ( S0*sx[6] ); - dx2 = sx[ 4 ] - ( S1*sx[5] ); - dx3 = sx[ 3 ] - ( S2*sx[4] ); - dx4 = sx[ 2 ] - ( S3*sx[3] ); - dx5 = sx[ 1 ] - ( S4*sx[2] ); - dx6 = sx[ 0 ] - ( S5*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - return false; -} - - -// EXPORTS // - -module.exports = some7d; diff --git a/lib/8d.js b/lib/8d.js deleted file mode 100644 index 8fe9236..0000000 --- a/lib/8d.js +++ /dev/null @@ -1,192 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some8d( x, 4 ); -* // returns true -*/ -function some8d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 7 ]; - S1 = sh[ 6 ]; - S2 = sh[ 5 ]; - S3 = sh[ 4 ]; - S4 = sh[ 3 ]; - S5 = sh[ 2 ]; - S6 = sh[ 1 ]; - S7 = sh[ 0 ]; - dx0 = sx[ 7 ]; // offset increment for innermost loop - dx1 = sx[ 6 ] - ( S0*sx[7] ); - dx2 = sx[ 5 ] - ( S1*sx[6] ); - dx3 = sx[ 4 ] - ( S2*sx[5] ); - dx4 = sx[ 3 ] - ( S3*sx[4] ); - dx5 = sx[ 2 ] - ( S4*sx[3] ); - dx6 = sx[ 1 ] - ( S5*sx[2] ); - dx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - return false; -} - - -// EXPORTS // - -module.exports = some8d; diff --git a/lib/8d_accessors.js b/lib/8d_accessors.js deleted file mode 100644 index 10d0033..0000000 --- a/lib/8d_accessors.js +++ /dev/null @@ -1,199 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some8d( x, 4 ); -* // returns true -*/ -function some8d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 7 ]; - S1 = sh[ 6 ]; - S2 = sh[ 5 ]; - S3 = sh[ 4 ]; - S4 = sh[ 3 ]; - S5 = sh[ 2 ]; - S6 = sh[ 1 ]; - S7 = sh[ 0 ]; - dx0 = sx[ 7 ]; // offset increment for innermost loop - dx1 = sx[ 6 ] - ( S0*sx[7] ); - dx2 = sx[ 5 ] - ( S1*sx[6] ); - dx3 = sx[ 4 ] - ( S2*sx[5] ); - dx4 = sx[ 3 ] - ( S3*sx[4] ); - dx5 = sx[ 2 ] - ( S4*sx[3] ); - dx6 = sx[ 1 ] - ( S5*sx[2] ); - dx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - return false; -} - - -// EXPORTS // - -module.exports = some8d; diff --git a/lib/8d_blocked.js b/lib/8d_blocked.js deleted file mode 100644 index 25e9cf1..0000000 --- a/lib/8d_blocked.js +++ /dev/null @@ -1,274 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome8d( x, 4 ); -* // returns true -*/ -function blockedsome8d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - ox7 = ox + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome8d; diff --git a/lib/8d_blocked_accessors.js b/lib/8d_blocked_accessors.js deleted file mode 100644 index f38a910..0000000 --- a/lib/8d_blocked_accessors.js +++ /dev/null @@ -1,281 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome8d( x, 4 ); -* // returns true -*/ -function blockedsome8d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - ox7 = ox + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome8d; diff --git a/lib/8d_blocked_complex.js b/lib/8d_blocked_complex.js deleted file mode 100644 index 3311039..0000000 --- a/lib/8d_blocked_complex.js +++ /dev/null @@ -1,274 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome8d( x, 4 ); -* // returns true -*/ -function blockedsome8d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - ox7 = ox + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome8d; diff --git a/lib/8d_complex.js b/lib/8d_complex.js deleted file mode 100644 index b736593..0000000 --- a/lib/8d_complex.js +++ /dev/null @@ -1,192 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some8d( x, 4 ); -* // returns true -*/ -function some8d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 7 ]; - S1 = sh[ 6 ]; - S2 = sh[ 5 ]; - S3 = sh[ 4 ]; - S4 = sh[ 3 ]; - S5 = sh[ 2 ]; - S6 = sh[ 1 ]; - S7 = sh[ 0 ]; - dx0 = sx[ 7 ]; // offset increment for innermost loop - dx1 = sx[ 6 ] - ( S0*sx[7] ); - dx2 = sx[ 5 ] - ( S1*sx[6] ); - dx3 = sx[ 4 ] - ( S2*sx[5] ); - dx4 = sx[ 3 ] - ( S3*sx[4] ); - dx5 = sx[ 2 ] - ( S4*sx[3] ); - dx6 = sx[ 1 ] - ( S5*sx[2] ); - dx7 = sx[ 0 ] - ( S6*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - return false; -} - - -// EXPORTS // - -module.exports = some8d; diff --git a/lib/9d.js b/lib/9d.js deleted file mode 100644 index 3de9596..0000000 --- a/lib/9d.js +++ /dev/null @@ -1,202 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some9d( x, 4 ); -* // returns true -*/ -function some9d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var S8; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 8 ]; - S1 = sh[ 7 ]; - S2 = sh[ 6 ]; - S3 = sh[ 5 ]; - S4 = sh[ 4 ]; - S5 = sh[ 3 ]; - S6 = sh[ 2 ]; - S7 = sh[ 1 ]; - S8 = sh[ 0 ]; - dx0 = sx[ 8 ]; // offset increment for innermost loop - dx1 = sx[ 7 ] - ( S0*sx[8] ); - dx2 = sx[ 6 ] - ( S1*sx[7] ); - dx3 = sx[ 5 ] - ( S2*sx[6] ); - dx4 = sx[ 4 ] - ( S3*sx[5] ); - dx5 = sx[ 3 ] - ( S4*sx[4] ); - dx6 = sx[ 2 ] - ( S5*sx[3] ); - dx7 = sx[ 1 ] - ( S6*sx[2] ); - dx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - S8 = sh[ 8 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); - dx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i8 = 0; i8 < S8; i8++ ) { - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - return false; -} - - -// EXPORTS // - -module.exports = some9d; diff --git a/lib/9d_accessors.js b/lib/9d_accessors.js deleted file mode 100644 index 1ed1e3a..0000000 --- a/lib/9d_accessors.js +++ /dev/null @@ -1,209 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = some9d( x, 4 ); -* // returns true -*/ -function some9d( x, n ) { - var count; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var S8; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 8 ]; - S1 = sh[ 7 ]; - S2 = sh[ 6 ]; - S3 = sh[ 5 ]; - S4 = sh[ 4 ]; - S5 = sh[ 3 ]; - S6 = sh[ 2 ]; - S7 = sh[ 1 ]; - S8 = sh[ 0 ]; - dx0 = sx[ 8 ]; // offset increment for innermost loop - dx1 = sx[ 7 ] - ( S0*sx[8] ); - dx2 = sx[ 6 ] - ( S1*sx[7] ); - dx3 = sx[ 5 ] - ( S2*sx[6] ); - dx4 = sx[ 4 ] - ( S3*sx[5] ); - dx5 = sx[ 3 ] - ( S4*sx[4] ); - dx6 = sx[ 2 ] - ( S5*sx[3] ); - dx7 = sx[ 1 ] - ( S6*sx[2] ); - dx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - S8 = sh[ 8 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); - dx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i8 = 0; i8 < S8; i8++ ) { - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - return false; -} - - -// EXPORTS // - -module.exports = some9d; diff --git a/lib/9d_blocked.js b/lib/9d_blocked.js deleted file mode 100644 index 0f09958..0000000 --- a/lib/9d_blocked.js +++ /dev/null @@ -1,293 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 3, 1, 2 ]; -* -* // Define the array strides: -* var sx = [ 12, 12, 12, 12, 12, 12, 4, 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome9d( x, 4 ); -* // returns true -*/ -function blockedsome9d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var ox8; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var s8; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var j8; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j8 = sh[8]; j8 > 0; ) { - if ( j8 < bsize ) { - s8 = j8; - j8 = 0; - } else { - s8 = bsize; - j8 -= bsize; - } - ox8 = ox + ( j8*sx[8] ); - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - dx8 = sx[8] - ( s7*sx[7] ); - ox7 = ox8 + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i8 = 0; i8 < s8; i8++ ) { - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome9d; diff --git a/lib/9d_blocked_accessors.js b/lib/9d_blocked_accessors.js deleted file mode 100644 index 4ce2b95..0000000 --- a/lib/9d_blocked_accessors.js +++ /dev/null @@ -1,300 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 4, 4, 4, 4, 4, 4, 2, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = blockedsome9d( x, 4 ); -* // returns true -*/ -function blockedsome9d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var get; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var ox8; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var s8; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var j8; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Cache accessor: - get = x.accessors[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j8 = sh[8]; j8 > 0; ) { - if ( j8 < bsize ) { - s8 = j8; - j8 = 0; - } else { - s8 = bsize; - j8 -= bsize; - } - ox8 = ox + ( j8*sx[8] ); - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - dx8 = sx[8] - ( s7*sx[7] ); - ox7 = ox8 + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i8 = 0; i8 < s8; i8++ ) { - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome9d; diff --git a/lib/9d_blocked_complex.js b/lib/9d_blocked_complex.js deleted file mode 100644 index c85cdec..0000000 --- a/lib/9d_blocked_complex.js +++ /dev/null @@ -1,293 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth, max-len */ - -'use strict'; - -// MODULES // - -var loopOrder = require( '@stdlib/ndarray-base-nullary-loop-interchange-order' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy via loop blocking. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = blockedsome9d( x, 4 ); -* // returns true -*/ -function blockedsome9d( x, n ) { // eslint-disable-line max-statements - var count; - var bsize; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var ox1; - var ox2; - var ox3; - var ox4; - var ox5; - var ox6; - var ox7; - var ox8; - var sh; - var s0; - var s1; - var s2; - var s3; - var s4; - var s5; - var s6; - var s7; - var s8; - var sx; - var ox; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - var j0; - var j1; - var j2; - var j3; - var j4; - var j5; - var j6; - var j7; - var j8; - var o; - - // Note on variable naming convention: s#, dx#, dy#, i#, j# where # corresponds to the loop number, with `0` being the innermost loop... - - // Resolve the loop interchange order: - o = loopOrder( x.shape, x.strides ); - sh = o.sh; - sx = o.sx; - - // Determine the block size: - bsize = blockSize( x.dtype ); - - // Set a pointer to the first indexed element: - ox = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Cache the offset increment for the innermost loop: - dx0 = sx[0]; - - // Initialize a counter: - count = 0; - - // Iterate over blocks... - for ( j8 = sh[8]; j8 > 0; ) { - if ( j8 < bsize ) { - s8 = j8; - j8 = 0; - } else { - s8 = bsize; - j8 -= bsize; - } - ox8 = ox + ( j8*sx[8] ); - for ( j7 = sh[7]; j7 > 0; ) { - if ( j7 < bsize ) { - s7 = j7; - j7 = 0; - } else { - s7 = bsize; - j7 -= bsize; - } - dx8 = sx[8] - ( s7*sx[7] ); - ox7 = ox8 + ( j7*sx[7] ); - for ( j6 = sh[6]; j6 > 0; ) { - if ( j6 < bsize ) { - s6 = j6; - j6 = 0; - } else { - s6 = bsize; - j6 -= bsize; - } - dx7 = sx[7] - ( s6*sx[6] ); - ox6 = ox7 + ( j6*sx[6] ); - for ( j5 = sh[5]; j5 > 0; ) { - if ( j5 < bsize ) { - s5 = j5; - j5 = 0; - } else { - s5 = bsize; - j5 -= bsize; - } - dx6 = sx[6] - ( s5*sx[5] ); - ox5 = ox6 + ( j5*sx[5] ); - for ( j4 = sh[4]; j4 > 0; ) { - if ( j4 < bsize ) { - s4 = j4; - j4 = 0; - } else { - s4 = bsize; - j4 -= bsize; - } - dx5 = sx[5] - ( s4*sx[4] ); - ox4 = ox5 + ( j4*sx[4] ); - for ( j3 = sh[3]; j3 > 0; ) { - if ( j3 < bsize ) { - s3 = j3; - j3 = 0; - } else { - s3 = bsize; - j3 -= bsize; - } - dx4 = sx[4] - ( s3*sx[3] ); - ox3 = ox4 + ( j3*sx[3] ); - for ( j2 = sh[2]; j2 > 0; ) { - if ( j2 < bsize ) { - s2 = j2; - j2 = 0; - } else { - s2 = bsize; - j2 -= bsize; - } - dx3 = sx[3] - ( s2*sx[2] ); - ox2 = ox3 + ( j2*sx[2] ); - for ( j1 = sh[1]; j1 > 0; ) { - if ( j1 < bsize ) { - s1 = j1; - j1 = 0; - } else { - s1 = bsize; - j1 -= bsize; - } - dx2 = sx[2] - ( s1*sx[1] ); - ox1 = ox2 + ( j1*sx[1] ); - for ( j0 = sh[0]; j0 > 0; ) { - if ( j0 < bsize ) { - s0 = j0; - j0 = 0; - } else { - s0 = bsize; - j0 -= bsize; - } - // Compute the index offset for the first input ndarray element in the current block: - ix = ox1 + ( j0*sx[0] ); - - // Compute the loop offset increment: - dx1 = sx[1] - ( s0*sx[0] ); - - // Iterate over the ndarray dimensions... - for ( i8 = 0; i8 < s8; i8++ ) { - for ( i7 = 0; i7 < s7; i7++ ) { - for ( i6 = 0; i6 < s6; i6++ ) { - for ( i5 = 0; i5 < s5; i5++ ) { - for ( i4 = 0; i4 < s4; i4++ ) { - for ( i3 = 0; i3 < s3; i3++ ) { - for ( i2 = 0; i2 < s2; i2++ ) { - for ( i1 = 0; i1 < s1; i1++ ) { - for ( i0 = 0; i0 < s0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - } - } - } - } - } - } - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = blockedsome9d; diff --git a/lib/9d_complex.js b/lib/9d_complex.js deleted file mode 100644 index a5be98d..0000000 --- a/lib/9d_complex.js +++ /dev/null @@ -1,202 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 max-depth */ - -'use strict'; - -// MODULES // - -var strides2order = require( '@stdlib/ndarray-base-strides2order' ); - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 1, 1, 1, 1, 1, 1, 1, 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 8, 8, 8, 8, 8, 8, 8, 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = some9d( x, 4 ); -* // returns true -*/ -function some9d( x, n ) { - var count; - var xbuf; - var dx0; - var dx1; - var dx2; - var dx3; - var dx4; - var dx5; - var dx6; - var dx7; - var dx8; - var sh; - var S0; - var S1; - var S2; - var S3; - var S4; - var S5; - var S6; - var S7; - var S8; - var sx; - var ix; - var i0; - var i1; - var i2; - var i3; - var i4; - var i5; - var i6; - var i7; - var i8; - - // Note on variable naming convention: S#, dx#, dy#, i# where # corresponds to the loop number, with `0` being the innermost loop... - - // Extract loop variables for purposes of loop interchange: dimensions and loop offset (pointer) increments... - sh = x.shape; - sx = x.strides; - if ( strides2order( sx ) === 1 ) { - // For row-major ndarrays, the last dimensions have the fastest changing indices... - S0 = sh[ 8 ]; - S1 = sh[ 7 ]; - S2 = sh[ 6 ]; - S3 = sh[ 5 ]; - S4 = sh[ 4 ]; - S5 = sh[ 3 ]; - S6 = sh[ 2 ]; - S7 = sh[ 1 ]; - S8 = sh[ 0 ]; - dx0 = sx[ 8 ]; // offset increment for innermost loop - dx1 = sx[ 7 ] - ( S0*sx[8] ); - dx2 = sx[ 6 ] - ( S1*sx[7] ); - dx3 = sx[ 5 ] - ( S2*sx[6] ); - dx4 = sx[ 4 ] - ( S3*sx[5] ); - dx5 = sx[ 3 ] - ( S4*sx[4] ); - dx6 = sx[ 2 ] - ( S5*sx[3] ); - dx7 = sx[ 1 ] - ( S6*sx[2] ); - dx8 = sx[ 0 ] - ( S7*sx[1] ); // offset increment for outermost loop - } else { // order === 'column-major' - // For column-major ndarrays, the first dimensions have the fastest changing indices... - S0 = sh[ 0 ]; - S1 = sh[ 1 ]; - S2 = sh[ 2 ]; - S3 = sh[ 3 ]; - S4 = sh[ 4 ]; - S5 = sh[ 5 ]; - S6 = sh[ 6 ]; - S7 = sh[ 7 ]; - S8 = sh[ 8 ]; - dx0 = sx[ 0 ]; // offset increment for innermost loop - dx1 = sx[ 1 ] - ( S0*sx[0] ); - dx2 = sx[ 2 ] - ( S1*sx[1] ); - dx3 = sx[ 3 ] - ( S2*sx[2] ); - dx4 = sx[ 4 ] - ( S3*sx[3] ); - dx5 = sx[ 5 ] - ( S4*sx[4] ); - dx6 = sx[ 6 ] - ( S5*sx[5] ); - dx7 = sx[ 7 ] - ( S6*sx[6] ); - dx8 = sx[ 8 ] - ( S7*sx[7] ); // offset increment for outermost loop - } - // Set a pointer to the first indexed element: - ix = x.offset; - - // Cache a reference to the input ndarray buffer: - xbuf = x.data; - - // Initialize a counter: - count = 0; - - // Iterate over the ndarray dimensions... - for ( i8 = 0; i8 < S8; i8++ ) { - for ( i7 = 0; i7 < S7; i7++ ) { - for ( i6 = 0; i6 < S6; i6++ ) { - for ( i5 = 0; i5 < S5; i5++ ) { - for ( i4 = 0; i4 < S4; i4++ ) { - for ( i3 = 0; i3 < S3; i3++ ) { - for ( i2 = 0; i2 < S2; i2++ ) { - for ( i1 = 0; i1 < S1; i1++ ) { - for ( i0 = 0; i0 < S0; i0++ ) { - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - ix += dx0; - } - ix += dx1; - } - ix += dx2; - } - ix += dx3; - } - ix += dx4; - } - ix += dx5; - } - ix += dx6; - } - ix += dx7; - } - ix += dx8; - } - return false; -} - - -// EXPORTS // - -module.exports = some9d; diff --git a/lib/index.js b/lib/index.js deleted file mode 100644 index 80de369..0000000 --- a/lib/index.js +++ /dev/null @@ -1,70 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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'; - -/** -* Test whether at least `n` elements in an ndarray are truthy. -* -* @module @stdlib/ndarray-base-some -* -* @example -* var Float64Array = require( '@stdlib/array-float64' ); -* var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -* var some = require( '@stdlib/ndarray-base-some' ); -* -* // 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 an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Define the success criterion: -* var n = scalar2ndarray( 3, { -* 'dtype': 'generic' -* }); -* -* // Test elements: -* var out = some( [ x, n ] ); -* // returns true -*/ - -// MODULES // - -var main = require( './main.js' ); - - -// EXPORTS // - -module.exports = main; diff --git a/lib/main.js b/lib/main.js deleted file mode 100644 index 7556989..0000000 --- a/lib/main.js +++ /dev/null @@ -1,391 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 isComplexArray = require( '@stdlib/array-base-assert-is-complex-typed-array' ); -var isBooleanArray = require( '@stdlib/array-base-assert-is-booleanarray' ); -var iterationOrder = require( '@stdlib/ndarray-base-iteration-order' ); -var minmaxViewBufferIndex = require( '@stdlib/ndarray-base-minmax-view-buffer-index' ); -var ndarray2object = require( '@stdlib/ndarray-base-ndarraylike2object' ); -var reinterpretComplex = require( '@stdlib/strided-base-reinterpret-complex' ); -var reinterpretBoolean = require( '@stdlib/strided-base-reinterpret-boolean' ); -var gscal = require( '@stdlib/blas-base-gscal' ); -var blockedaccessorsome2d = require( './2d_blocked_accessors.js' ); -var blockedaccessorsome3d = require( './3d_blocked_accessors.js' ); -var blockedaccessorsome4d = require( './4d_blocked_accessors.js' ); -var blockedaccessorsome5d = require( './5d_blocked_accessors.js' ); -var blockedaccessorsome6d = require( './6d_blocked_accessors.js' ); -var blockedaccessorsome7d = require( './7d_blocked_accessors.js' ); -var blockedaccessorsome8d = require( './8d_blocked_accessors.js' ); -var blockedaccessorsome9d = require( './9d_blocked_accessors.js' ); -var blockedaccessorsome10d = require( './10d_blocked_accessors.js' ); -var blockedcomplexsome2d = require( './2d_blocked_complex.js' ); -var blockedcomplexsome3d = require( './3d_blocked_complex.js' ); -var blockedcomplexsome4d = require( './4d_blocked_complex.js' ); -var blockedcomplexsome5d = require( './5d_blocked_complex.js' ); -var blockedcomplexsome6d = require( './6d_blocked_complex.js' ); -var blockedcomplexsome7d = require( './7d_blocked_complex.js' ); -var blockedcomplexsome8d = require( './8d_blocked_complex.js' ); -var blockedcomplexsome9d = require( './9d_blocked_complex.js' ); -var blockedcomplexsome10d = require( './10d_blocked_complex.js' ); -var blockedsome2d = require( './2d_blocked.js' ); -var blockedsome3d = require( './3d_blocked.js' ); -var blockedsome4d = require( './4d_blocked.js' ); -var blockedsome5d = require( './5d_blocked.js' ); -var blockedsome6d = require( './6d_blocked.js' ); -var blockedsome7d = require( './7d_blocked.js' ); -var blockedsome8d = require( './8d_blocked.js' ); -var blockedsome9d = require( './9d_blocked.js' ); -var blockedsome10d = require( './10d_blocked.js' ); -var accessorsome0d = require( './0d_accessors.js' ); -var accessorsome1d = require( './1d_accessors.js' ); -var accessorsome2d = require( './2d_accessors.js' ); -var accessorsome3d = require( './3d_accessors.js' ); -var accessorsome4d = require( './4d_accessors.js' ); -var accessorsome5d = require( './5d_accessors.js' ); -var accessorsome6d = require( './6d_accessors.js' ); -var accessorsome7d = require( './7d_accessors.js' ); -var accessorsome8d = require( './8d_accessors.js' ); -var accessorsome9d = require( './9d_accessors.js' ); -var accessorsome10d = require( './10d_accessors.js' ); -var accessorsomend = require( './nd_accessors.js' ); -var complexsome0d = require( './0d_complex.js' ); -var complexsome1d = require( './1d_complex.js' ); -var complexsome2d = require( './2d_complex.js' ); -var complexsome3d = require( './3d_complex.js' ); -var complexsome4d = require( './4d_complex.js' ); -var complexsome5d = require( './5d_complex.js' ); -var complexsome6d = require( './6d_complex.js' ); -var complexsome7d = require( './7d_complex.js' ); -var complexsome8d = require( './8d_complex.js' ); -var complexsome9d = require( './9d_complex.js' ); -var complexsome10d = require( './10d_complex.js' ); -var complexsomend = require( './nd_complex.js' ); -var some0d = require( './0d.js' ); -var some1d = require( './1d.js' ); -var some2d = require( './2d.js' ); -var some3d = require( './3d.js' ); -var some4d = require( './4d.js' ); -var some5d = require( './5d.js' ); -var some6d = require( './6d.js' ); -var some7d = require( './7d.js' ); -var some8d = require( './8d.js' ); -var some9d = require( './9d.js' ); -var some10d = require( './10d.js' ); -var somend = require( './nd.js' ); - - -// VARIABLES // - -var SOME = [ - some0d, - some1d, - some2d, - some3d, - some4d, - some5d, - some6d, - some7d, - some8d, - some9d, - some10d, - somend -]; -var ACCESSOR_SOME = [ - accessorsome0d, - accessorsome1d, - accessorsome2d, - accessorsome3d, - accessorsome4d, - accessorsome5d, - accessorsome6d, - accessorsome7d, - accessorsome8d, - accessorsome9d, - accessorsome10d, - accessorsomend -]; -var COMPLEX_SOME = [ - complexsome0d, - complexsome1d, - complexsome2d, - complexsome3d, - complexsome4d, - complexsome5d, - complexsome6d, - complexsome7d, - complexsome8d, - complexsome9d, - complexsome10d, - complexsomend -]; -var BLOCKED_SOME = [ - blockedsome2d, // 0 - blockedsome3d, - blockedsome4d, - blockedsome5d, - blockedsome6d, - blockedsome7d, - blockedsome8d, - blockedsome9d, - blockedsome10d // 8 -]; -var BLOCKED_ACCESSOR_SOME = [ - blockedaccessorsome2d, // 0 - blockedaccessorsome3d, - blockedaccessorsome4d, - blockedaccessorsome5d, - blockedaccessorsome6d, - blockedaccessorsome7d, - blockedaccessorsome8d, - blockedaccessorsome9d, - blockedaccessorsome10d // 8 -]; -var BLOCKED_COMPLEX_SOME = [ - blockedcomplexsome2d, // 0 - blockedcomplexsome3d, - blockedcomplexsome4d, - blockedcomplexsome5d, - blockedcomplexsome6d, - blockedcomplexsome7d, - blockedcomplexsome8d, - blockedcomplexsome9d, - blockedcomplexsome10d // 8 -]; -var MAX_DIMS = SOME.length - 1; - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* ## Notes -* -* - A provided ndarray should be an object with the following properties: -* -* - **dtype**: data type. -* - **data**: data buffer. -* - **shape**: dimensions. -* - **strides**: stride lengths. -* - **offset**: index offset. -* - **order**: specifies whether an ndarray is row-major (C-style) or column major (Fortran-style). -* -* @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 -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -* var Float64Array = require( '@stdlib/array-float64' ); -* -* // 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 an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Define the success criterion: -* var n = scalar2ndarray( 3, { -* 'dtype': 'generic' -* }); -* -* // Test elements: -* var out = some( [ x, n ] ); -* // returns true -*/ -function some( arrays ) { - var isCmplx; - var ndims; - var xmmv; - var shx; - var iox; - var len; - var sx; - var ox; - var ns; - var N; - var x; - var n; - var d; - var i; - - // Unpack the ndarray and standardize ndarray meta data: - x = ndarray2object( arrays[ 0 ] ); - n = ndarray2object( arrays[ 1 ] ); - - shx = x.shape; - ndims = shx.length; - - // Resolve the success criterion: - N = n.accessors[ 0 ]( n.data, n.offset ); - - // Check for known array types which can be reinterpreted for better iteration performance... - if ( isBooleanArray( x.data ) ) { - x.data = reinterpretBoolean( x.data, 0 ); - x.accessorProtocol = false; - } else if ( isComplexArray( x.data ) ) { - x.data = reinterpretComplex( x.data, 0 ); - x.accessorProtocol = false; - x.strides = gscal( ndims, 2, x.strides, 1 ); - x.offset *= 2; - isCmplx = true; - } - // Determine whether we can avoid iteration altogether... - if ( ndims === 0 ) { - if ( x.accessorProtocol ) { - return ACCESSOR_SOME[ ndims ]( x, N ); - } - if ( isCmplx ) { - return COMPLEX_SOME[ ndims ]( x, N ); - } - return SOME[ ndims ]( x, N ); - } - // Compute the number of elements and the number of singleton dimensions... - len = 1; // number of elements - ns = 0; // number of singleton dimensions - for ( i = 0; i < ndims; i++ ) { - d = shx[ i ]; - - // Note that, if one of the dimensions is `0`, the length will be `0`... - len *= d; - - // Check whether the current dimension is a singleton dimension... - if ( d === 1 ) { - ns += 1; - } - } - // Check whether we were provided an empty ndarray... - if ( len === 0 ) { - return false; - } - // Determine whether the ndarray is one-dimensional and thus readily translates to a one-dimensional strided array... - if ( ndims === 1 ) { - if ( x.accessorProtocol ) { - return ACCESSOR_SOME[ ndims ]( x, N ); - } - if ( isCmplx ) { - return COMPLEX_SOME[ ndims ]( x, N ); - } - return SOME[ ndims ]( x, N ); - } - sx = x.strides; - - // 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... - if ( ns === ndims-1 ) { - // Get the index of the non-singleton dimension... - for ( i = 0; i < ndims; i++ ) { - if ( shx[ i ] !== 1 ) { - break; - } - } - x.shape = [ shx[i] ]; - x.strides = [ sx[i] ]; - if ( x.accessorProtocol ) { - return ACCESSOR_SOME[ 1 ]( x, N ); - } - if ( isCmplx ) { - return COMPLEX_SOME[ 1 ]( x, N ); - } - return SOME[ 1 ]( x, N ); - } - iox = iterationOrder( sx ); // +/-1 - - // Determine whether we can avoid blocked iteration... - if ( iox !== 0 ) { - // Determine the minimum and maximum linear indices which are accessible by the array view: - xmmv = minmaxViewBufferIndex( shx, sx, x.offset ); - - // Determine whether we can ignore shape (and strides) and treat the ndarray as a linear one-dimensional strided array... - if ( len === ( xmmv[1]-xmmv[0]+1 ) || ( isCmplx && len*2 === ( xmmv[1]-xmmv[0]+2 ) ) ) { // eslint-disable-line max-len - // Note: the above is equivalent to @stdlib/ndarray/base/assert/is-contiguous, but in-lined so we can retain computed values... - if ( iox === 1 ) { - ox = xmmv[ 0 ]; - } else { - ox = xmmv[ 1 ]; - } - x.shape = [ len ]; - x.strides = [ ( isCmplx ) ? iox*2 : iox ]; - x.offset = ox; - if ( x.accessorProtocol ) { - return ACCESSOR_SOME[ 1 ]( x, N ); - } - if ( isCmplx ) { - return COMPLEX_SOME[ 1 ]( x, N ); - } - return SOME[ 1 ]( x, N ); - } - // The ndarray is non-contiguous, so we cannot directly use one-dimensional array functionality... - - // Determine whether we can use simple nested loops... - if ( ndims <= MAX_DIMS ) { - // 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... - if ( x.accessorProtocol ) { - return ACCESSOR_SOME[ ndims ]( x, N ); - } - if ( isCmplx ) { - return COMPLEX_SOME[ ndims ]( x, N ); - } - return SOME[ ndims ]( x, N ); - } - // Fall-through to blocked iteration... - } - // 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... - - // Determine whether we can perform blocked iteration... - if ( ndims <= MAX_DIMS ) { - if ( x.accessorProtocol ) { - return BLOCKED_ACCESSOR_SOME[ ndims-2 ]( x, N ); - } - if ( isCmplx ) { - return BLOCKED_COMPLEX_SOME[ ndims-2 ]( x, N ); - } - return BLOCKED_SOME[ ndims-2 ]( x, N ); - } - // Fall-through to linear view iteration without regard for how data is stored in memory (i.e., take the slow path)... - if ( x.accessorProtocol ) { - return accessorsomend( x, N ); - } - if ( isCmplx ) { - return complexsomend( x, N ); - } - return somend( x, N ); -} - - -// EXPORTS // - -module.exports = some; diff --git a/lib/nd.js b/lib/nd.js deleted file mode 100644 index 762b52f..0000000 --- a/lib/nd.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 numel = require( '@stdlib/ndarray-base-numel' ); -var vind2bind = require( '@stdlib/ndarray-base-vind2bind' ); - - -// VARIABLES // - -var MODE = 'throw'; - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 1 ]; -* -* // Define the index offset: -* var ox = 1; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'float64', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = somend( x, 2 ); -* // returns true -*/ -function somend( x, n ) { - var count; - var xbuf; - var ordx; - var len; - var sh; - var sx; - var ox; - var ix; - var i; - - sh = x.shape; - - // Compute the total number of elements over which to iterate: - len = numel( sh ); - - // Cache a reference to the input ndarray data buffer: - xbuf = x.data; - - // Cache a reference to the stride array: - sx = x.strides; - - // Cache the index of the first indexed element: - ox = x.offset; - - // Cache the array order: - ordx = x.order; - - // Initialize a counter: - count = 0; - - // Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory... - for ( i = 0; i < len; i++ ) { - ix = vind2bind( sh, sx, ox, ordx, i, MODE ); - if ( xbuf[ ix ] ) { - count += 1; - if ( count >= n ) { - return true; - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = somend; diff --git a/lib/nd_accessors.js b/lib/nd_accessors.js deleted file mode 100644 index c5f3ea2..0000000 --- a/lib/nd_accessors.js +++ /dev/null @@ -1,131 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 numel = require( '@stdlib/ndarray-base-numel' ); -var vind2bind = require( '@stdlib/ndarray-base-vind2bind' ); - - -// VARIABLES // - -var MODE = 'throw'; - - -// MAIN // - -/** -* Tests whether at least `n` elements in an ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {Array} x.accessors - data buffer accessors -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @example -* var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -* var accessors = require( '@stdlib/array-base-accessors' ); -* -* // Create a data buffer: -* var xbuf = toAccessorArray( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 1 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'generic', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major', -* 'accessors': accessors( xbuf ).accessors -* }; -* -* // Test elements: -* var out = somend( x, 2 ); -* // returns true -*/ -function somend( x, n ) { - var count; - var xbuf; - var ordx; - var len; - var get; - var sh; - var sx; - var ox; - var ix; - var i; - - sh = x.shape; - - // Compute the total number of elements over which to iterate: - len = numel( sh ); - - // Cache a reference to the input ndarray data buffer: - xbuf = x.data; - - // Cache a reference to the stride array: - sx = x.strides; - - // Cache the index of the first indexed element: - ox = x.offset; - - // Cache the array order: - ordx = x.order; - - // Cache accessor: - get = x.accessors[ 0 ]; - - // Initialize a counter: - count = 0; - - // Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory... - for ( i = 0; i < len; i++ ) { - ix = vind2bind( sh, sx, ox, ordx, i, MODE ); - if ( get( xbuf, ix ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = somend; diff --git a/lib/nd_complex.js b/lib/nd_complex.js deleted file mode 100644 index bc2584c..0000000 --- a/lib/nd_complex.js +++ /dev/null @@ -1,124 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 numel = require( '@stdlib/ndarray-base-numel' ); -var vind2bind = require( '@stdlib/ndarray-base-vind2bind' ); - - -// VARIABLES // - -var MODE = 'throw'; - - -// MAIN // - -/** -* Tests whether at least `n` elements of a reinterpreted complex number ndarray are truthy. -* -* @private -* @param {Object} x - object containing ndarray meta data -* @param {string} x.dtype - data type -* @param {Collection} x.data - data buffer -* @param {NonNegativeIntegerArray} x.shape - dimensions -* @param {IntegerArray} x.strides - stride lengths -* @param {NonNegativeInteger} x.offset - index offset -* @param {string} x.order - specifies whether `x` is row-major (C-style) or column-major (Fortran-style) -* @param {PositiveInteger} n - number of elements -* @returns {boolean} boolean indicating whether at least `n` elements are truthy -* -* @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, 7.0, 8.0 ] ); -* -* // Define the shape of the input array: -* var shape = [ 2, 2 ]; -* -* // Define the array strides: -* var sx = [ 4, 2 ]; -* -* // Define the index offset: -* var ox = 0; -* -* // Create an input ndarray-like object: -* var x = { -* 'dtype': 'complex128', -* 'data': xbuf, -* 'shape': shape, -* 'strides': sx, -* 'offset': ox, -* 'order': 'row-major' -* }; -* -* // Test elements: -* var out = somend( x, 4 ); -* // returns true -*/ -function somend( x, n ) { - var count; - var xbuf; - var ordx; - var len; - var sh; - var sx; - var ox; - var ix; - var i; - - sh = x.shape; - - // Compute the total number of elements over which to iterate: - len = numel( sh ); - - // Cache a reference to the output ndarray data buffer: - xbuf = x.data; - - // Cache a reference to the stride array: - sx = x.strides; - - // Cache the index of the first indexed element: - ox = x.offset; - - // Cache the array order: - ordx = x.order; - - // Initialize a counter: - count = 0; - - // Iterate over each element based on the linear **view** index, regardless as to how the data is stored in memory... - for ( i = 0; i < len; i++ ) { - ix = vind2bind( sh, sx, ox, ordx, i, MODE ); - if ( ( xbuf[ ix ] || xbuf[ ix+1 ] ) ) { - count += 1; - if ( count >= n ) { - return true; - } - } - } - return false; -} - - -// EXPORTS // - -module.exports = somend; diff --git a/package.json b/package.json index ab68ab4..580a866 100644 --- a/package.json +++ b/package.json @@ -3,31 +3,8 @@ "version": "0.1.1", "description": "Test whether at least `n` elements in an ndarray are truthy.", "license": "Apache-2.0", - "author": { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - }, - "contributors": [ - { - "name": "The Stdlib Authors", - "url": "https://github.com/stdlib-js/stdlib/graphs/contributors" - } - ], - "main": "./lib", - "directories": { - "benchmark": "./benchmark", - "doc": "./docs", - "example": "./examples", - "lib": "./lib", - "test": "./test" - }, - "types": "./docs/types", - "scripts": { - "test": "make test", - "test-cov": "make test-cov", - "examples": "make examples", - "benchmark": "make benchmark" - }, + "type": "module", + "main": "./index.mjs", "homepage": "https://stdlib.io", "repository": { "type": "git", @@ -36,62 +13,6 @@ "bugs": { "url": "https://github.com/stdlib-js/stdlib/issues" }, - "dependencies": { - "@stdlib/array-base-assert-is-booleanarray": "^0.0.3", - "@stdlib/array-base-assert-is-complex-typed-array": "^0.1.3", - "@stdlib/blas-base-gscal": "^0.3.1", - "@stdlib/ndarray-base-iteration-order": "^0.2.3", - "@stdlib/ndarray-base-minmax-view-buffer-index": "^0.2.3", - "@stdlib/ndarray-base-ndarraylike2object": "^0.2.3", - "@stdlib/ndarray-base-nullary-loop-interchange-order": "^0.2.3", - "@stdlib/ndarray-base-nullary-tiling-block-size": "^0.2.3", - "@stdlib/ndarray-base-numel": "^0.2.3", - "@stdlib/ndarray-base-strides2order": "^0.2.3", - "@stdlib/ndarray-base-vind2bind": "^0.2.3", - "@stdlib/strided-base-reinterpret-boolean": "^0.0.3", - "@stdlib/strided-base-reinterpret-complex": "^0.1.3", - "@stdlib/types": "^0.5.1" - }, - "devDependencies": { - "@stdlib/array-base-to-accessor-array": "^0.2.3", - "@stdlib/array-bool": "^0.1.2", - "@stdlib/array-complex128": "^0.3.2", - "@stdlib/array-ones": "^0.2.2", - "@stdlib/array-typed-complex-ctors": "^0.2.3", - "@stdlib/array-zeros": "^0.2.3", - "@stdlib/assert-is-boolean": "^0.2.3", - "@stdlib/complex-float64-ctor": "^0.1.2", - "@stdlib/math-base-special-cbrt": "^0.2.3", - "@stdlib/math-base-special-floor": "^0.2.4", - "@stdlib/math-base-special-pow": "^0.3.1", - "@stdlib/math-base-special-sqrt": "^0.2.3", - "@stdlib/ndarray-base-shape2strides": "^0.2.3", - "@stdlib/ndarray-base-strides2offset": "^0.2.3", - "@stdlib/ndarray-base-to-array": "^0.2.2", - "@stdlib/ndarray-ctor": "^0.3.1", - "@stdlib/ndarray-from-scalar": "^0.3.1", - "@stdlib/random-array-discrete-uniform": "^0.2.2", - "@stdlib/string-format": "^0.2.3", - "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", "base", diff --git a/stats.html b/stats.html new file mode 100644 index 0000000..22c2ec5 --- /dev/null +++ b/stats.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.0d.js b/test/test.0d.js deleted file mode 100644 index 9b19c86..0000000 --- a/test/test.0d.js +++ /dev/null @@ -1,105 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 Complex128 = require( '@stdlib/complex-float64-ctor' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 0-dimensional ndarray are truthy', function test( t ) { - var actual; - var x; - var n; - - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - x = scalar2ndarray( 0.0, { - 'dtype': 'float64' - }); - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = scalar2ndarray( 1.0, { - 'dtype': 'float64' - }); - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 0-dimensional ndarray are truthy (complex)', function test( t ) { - var actual; - var x; - var n; - - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - x = scalar2ndarray( new Complex128( 0.0, 0.0 ), { - 'dtype': 'complex128' - }); - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = scalar2ndarray( new Complex128( 1.0, 1.0 ), { - 'dtype': 'complex128' - }); - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 0-dimensional ndarray are truthy (accessors)', function test( t ) { - var actual; - var x; - var n; - - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - x = ndarray( 'generic', toAccessorArray( [ 0.0 ] ), [], [ 0 ], 0, 'row-major' ); - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( 'generic', toAccessorArray( [ 1.0 ] ), [], [ 0 ], 0, 'row-major' ); - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.10d.js b/test/test.10d.js deleted file mode 100644 index b41f83d..0000000 --- a/test/test.10d.js +++ /dev/null @@ -1,3302 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, -8, -4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 1, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ 32, 16, 16, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, 32, 16, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, bsize*32, 16, -8, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, bsize*64, bsize*32, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ bsize*32, bsize*32, bsize*32, -bsize*16, 8, 4, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ bsize*32, bsize*32, bsize*32, -bsize*32, bsize*16, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*32, - bsize*16, - -8, - 4, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*32, - bsize*32, - -bsize*16, - 8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*16, - bsize*16, - -bsize*16, - bsize*8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 2, bsize*2 ]; - st = [ - bsize*32, - bsize*32, - bsize*16, - -bsize*16, - bsize*8, - bsize*8, - -bsize*8, - bsize*8, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, -16, 16, -8, -4, -2, 1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 1, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ 32, 16, 16, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, 32, 16, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, bsize*32, 16, -8, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, bsize*64, bsize*32, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ bsize*32, bsize*32, bsize*32, -bsize*16, 8, 4, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ bsize*32, bsize*32, bsize*32, -bsize*32, bsize*16, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*32, - bsize*16, - -8, - 4, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*32, - bsize*32, - -bsize*16, - 8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*16, - bsize*16, - -bsize*16, - bsize*8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 2, bsize*2 ]; - st = [ - bsize*32, - bsize*32, - bsize*16, - -bsize*16, - bsize*8, - bsize*8, - -bsize*8, - bsize*8, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, -16, 16, -8, -4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 1, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ 32, 16, 16, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, 32, 16, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, bsize*32, 16, -8, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, bsize*64, bsize*32, -16, 8, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ bsize*32, bsize*32, bsize*32, -bsize*16, 8, 4, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ bsize*32, bsize*32, bsize*32, -bsize*32, bsize*16, 8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*32, - bsize*16, - -8, - 4, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*32, - bsize*32, - -bsize*16, - 8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ - bsize*64, - bsize*64, - bsize*32, - -bsize*32, - bsize*16, - bsize*16, - -bsize*16, - bsize*8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 2, bsize*2 ]; - st = [ - bsize*32, - bsize*32, - bsize*16, - -bsize*16, - bsize*8, - bsize*8, - -bsize*8, - bsize*8, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -1, -1, -1, -1, -1, -1, -1, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 2, -2, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 1, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - bsize*4, - bsize*8, - -bsize*8, - bsize*8, - bsize*16, - bsize*16, - -bsize*32, - bsize*32, - bsize*32 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - bsize*8, - bsize*16, - bsize*16, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - 8, - bsize*16, - bsize*32, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - 4, - 8, - bsize*16, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32, bsize*64, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 2, bsize*2, 2, 1 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 32, bsize*64, bsize*128 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 16, 32, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 16, -16, 16, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = [ -1, -1, -1, -1, -1, -1, -2, -4, -4, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, -2, 2, -2, 2, 2, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 1, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - bsize*4, - bsize*8, - -bsize*8, - bsize*8, - bsize*16, - bsize*16, - -bsize*32, - bsize*32, - bsize*32 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - bsize*8, - bsize*16, - bsize*16, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - 8, - bsize*16, - bsize*32, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - 4, - 8, - bsize*16, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32, bsize*64, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 2, bsize*2, 2, 1 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 32, bsize*64, bsize*128 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 16, 32, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 16, -16, 16, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = [ -1, -1, -1, -1, -1, -1, -2, -4, -4, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, -2, 2, -2, 2, 2, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 1, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - bsize*4, - bsize*8, - -bsize*8, - bsize*8, - bsize*16, - bsize*16, - -bsize*32, - bsize*32, - bsize*32 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - bsize*8, - bsize*16, - bsize*16, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - 8, - bsize*16, - bsize*32, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ - 2, - 4, - 4, - 8, - bsize*16, - bsize*32, - bsize*32, - bsize*64, - bsize*64, - bsize*64 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32, bsize*64, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 2, bsize*2, 2, 1 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 32, bsize*64, bsize*128 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 16, 32, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 10-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 16, -16, 16, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.1d.js b/test/test.1d.js deleted file mode 100644 index 16fae28..0000000 --- a/test/test.1d.js +++ /dev/null @@ -1,128 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 ones = require( '@stdlib/array-ones' ); -var zeros = require( '@stdlib/array-zeros' ); -var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var Complex128Array = require( '@stdlib/array-complex128' ); -var BooleanArray = require( '@stdlib/array-bool' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 1-dimensional ndarray are truthy', function test( t ) { - var actual; - var x; - var n; - - x = ndarray( 'float64', zeros( 8, 'float64' ), [ 4 ], [ 2 ], 1, 'row-major' ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( 'float64', ones( 8, 'float64' ), [ 4 ], [ 2 ], 1, 'row-major' ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 1-dimensional ndarray are truthy (complex)', function test( t ) { - var actual; - var xbuf; - var x; - var n; - - xbuf = zeros( 6*2, 'float64' ); - x = ndarray( 'complex128', new Complex128Array( xbuf ), [ 4 ], [ 1 ], 1, 'row-major' ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 6*2, 'float64' ); - x = ndarray( 'complex128', new Complex128Array( xbuf ), [ 4 ], [ 1 ], 1, 'row-major' ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 1-dimensional ndarray are truthy (accessors)', function test( t ) { - var actual; - var x; - var n; - - x = ndarray( 'generic', toAccessorArray( zeros( 8, 'generic' ) ), [ 4 ], [ 2 ], 1, 'row-major' ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( 'generic', toAccessorArray( ones( 8, 'generic' ) ), [ 4 ], [ 2 ], 1, 'row-major' ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 1-dimensional ndarray are truthy (bool)', function test( t ) { - var actual; - var x; - var n; - - x = ndarray( 'bool', new BooleanArray( 8 ), [ 4 ], [ 2 ], 1, 'row-major' ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( 'bool', new BooleanArray( 8 ), [ 4 ], [ 2 ], 1, 'row-major' ); - x.set( 3, true ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.2d.js b/test/test.2d.js deleted file mode 100644 index 3bd96db..0000000 --- a/test/test.2d.js +++ /dev/null @@ -1,1507 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var Complex128Array = require( '@stdlib/array-complex128' ); -var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, singleton dimensions, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 4, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ 4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2 ]; - st = [ -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2 ]; - st = [ bsize*4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ -2, -1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ -2, -1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ 4, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 2 ]; - st = [ 4, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2 ]; - st = [ -4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2 ]; - st = [ -4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2 ]; - st = [ bsize*4, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2 ]; - st = [ bsize*4, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, singleton dimensions, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ -1, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ 2, 4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ -2, 4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2 ]; - st = [ 2, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2 ]; - st = [ -2, 4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ -1, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ -1, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ 2, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ 2, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ -2, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 2 ]; - st = [ -2, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2 ]; - st = [ -2, bsize*2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2 ]; - st = [ -2, bsize*2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2 ]; - st = [ 2, -4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 2-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2 ]; - st = [ 2, -4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( numel( sh ), { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.3d.js b/test/test.3d.js deleted file mode 100644 index 48dcab4..0000000 --- a/test/test.3d.js +++ /dev/null @@ -1,1729 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var Complex128Array = require( '@stdlib/array-complex128' ); -var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, singleton dimensions, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 4, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2 ]; - st = [ -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1 ]; - st = [ bsize*4, -2, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2 ]; - st = [ bsize*4, -bsize*4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ -2, -2, -1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ -2, -2, -1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ 4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ 4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ -4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2 ]; - st = [ -4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2 ]; - st = [ -4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2 ]; - st = [ -4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1 ]; - st = [ bsize*4, -2, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1 ]; - st = [ bsize*4, -2, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2 ]; - st = [ bsize*4, -bsize*4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2 ]; - st = [ bsize*4, -bsize*4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, singleton dimensions, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ -1, -2, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ 2, 4, 4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ -2, 4, 4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2 ]; - st = [ 2, -bsize*4, bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1 ]; - st = [ -2, 4, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2 ]; - st = [ -2, 4, 4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ -1, -2, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ -1, -2, -2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ 2, 4, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ 2, 4, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ -2, 4, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2 ]; - st = [ -2, 4, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( 8, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2 ]; - st = [ -2, bsize*4, bsize*4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2 ]; - st = [ -2, bsize*4, bsize*4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1 ]; - st = [ 2, -4, bsize*8 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1 ]; - st = [ 2, -4, bsize*8 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2 ]; - st = [ 2, -4, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 3-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2 ]; - st = [ 2, -4, 4 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.4d.js b/test/test.4d.js deleted file mode 100644 index 9d5e491..0000000 --- a/test/test.4d.js +++ /dev/null @@ -1,1778 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ -2, -2, -1, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 4, 4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 4, -4, -2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1 ]; - st = [ -4, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 1, bsize*2, 2, 1 ]; - st = [ -bsize*8, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, bsize*2, 1 ]; - st = [ bsize*8, bsize*4, -2, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, 1, bsize*2 ]; - st = [ bsize*8, bsize*4, -bsize*4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 2, 1, 2 ]; - st = [ -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 4, 4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 4, -4, -2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1 ]; - st = [ -4, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 1, bsize*2, 2, 1 ]; - st = [ -bsize*8, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, bsize*2, 1 ]; - st = [ -bsize*4, -bsize*4, -2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2 ]; - st = [ -bsize*4, -bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 2, 1, 2 ]; - st = [ -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 4, 4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 8, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 8, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 4, -4, -2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 8, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 8, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1 ]; - st = [ -4, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 1, bsize*2, 2, 1 ]; - st = [ -bsize*8, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1 ]; - st = [ bsize*4, bsize*4, -2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2 ]; - st = [ bsize*4, bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 2, 1, 2 ]; - st = [ -1, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 2, 4, 4, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 2, -4, -4, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, 1, bsize*2 ]; - st = [ 2, 2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, bsize*2, 1 ]; - st = [ 2, -2, -4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 1, bsize*2, 1, 2 ]; - st = [ 2, 2, -bsize*4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 1, 2 ]; - st = [ 2, -bsize*4, bsize*4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 2, 1, 2 ]; - st = [ -1, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 2, 4, 4, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 2, 4, -4, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 8, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 8, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1 ]; - st = [ 2, -bsize*4, -bsize*4, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1 ]; - st = [ 1, 2, -bsize*4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1 ]; - st = [ 2, 4, -4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*4 ]; - st = [ 2, 4, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 2, 1, 2 ]; - st = [ -1, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 2, 4, 4, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 8, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 8, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1 ]; - st = [ 2, -4, -4, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 8, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 8, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, 1, bsize*2 ]; - st = [ 2, 2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, bsize*2, 1 ]; - st = [ 2, 2, -4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 1, bsize*2, 1, 2 ]; - st = [ 2, 2, -bsize*4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 4-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 1, 2 ]; - st = [ 2, -bsize*4, bsize*4, -bsize*4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.5d.js b/test/test.5d.js deleted file mode 100644 index 598a39b..0000000 --- a/test/test.5d.js +++ /dev/null @@ -1,1988 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 2, 1, 2, 2 ]; - st = [ -8, -4, -4, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 8, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 8, 8, -4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2 ]; - st = [ 8, -8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2 ]; - st = [ bsize*8, -4, 4, -4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2 ]; - st = [ bsize*8, bsize*8, -4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 1 ]; - st = [ bsize*8, bsize*8, -bsize*4, -2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2 ]; - st = [ bsize*8, -bsize*8, -bsize*4, -bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ -4, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 8, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 8, 8, -4, -4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2 ]; - st = [ 8, -8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2 ]; - st = [ -bsize*8, -4, 4, -4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2 ]; - st = [ bsize*8, bsize*8, -4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2 ]; - st = [ bsize*8, -bsize*8, -bsize*8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2 ]; - st = [ bsize*8, -bsize*8, -bsize*4, -bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ -4, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 8, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 8, 8, -4, -4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2 ]; - st = [ 8, -8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2 ]; - st = [ -bsize*8, -4, 4, -4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2 ]; - st = [ bsize*8, bsize*8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2 ]; - st = [ bsize*8, -bsize*8, -bsize*8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2 ]; - st = [ bsize*8, -bsize*8, -bsize*4, -bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 2, 1, 2, 2 ]; - st = [ -1, -2, -4, -4, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 2, -4, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2 ]; - st = [ -2, bsize*4, -bsize*4, bsize*8, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2 ]; - st = [ -2, 4, -bsize*8, bsize*8, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2 ]; - st = [ -2, 4, -4, bsize*8, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2 ]; - st = [ -2, 4, -4, 4, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2 ]; - st = [ -2, 4, -4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ -1, -2, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 2, 4, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2 ]; - st = [ -2, bsize*4, -bsize*4, bsize*8, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1 ]; - st = [ -2, 4, -bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2 ]; - st = [ -2, 4, -4, bsize*8, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2 ]; - st = [ -2, -4, -4, 4, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2 ]; - st = [ 2, 4, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ -1, -2, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2 ]; - st = [ 2, -4, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2 ]; - st = [ -2, bsize*4, -bsize*4, bsize*8, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1 ]; - st = [ -2, 4, -bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2 ]; - st = [ -2, 4, -4, bsize*8, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2 ]; - st = [ -2, -4, -4, 4, bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 5-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2 ]; - st = [ 2, 4, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.6d.js b/test/test.6d.js deleted file mode 100644 index 47ca531..0000000 --- a/test/test.6d.js +++ /dev/null @@ -1,2198 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 16, -16, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2 ]; - st = [ 8, -8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2 ]; - st = [ bsize*8, -4, -4, 4, 4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 1, 2 ]; - st = [ bsize*8, bsize*8, -4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2 ]; - st = [ bsize*8, bsize*8, -bsize*8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, bsize*2, 2 ]; - st = [ bsize*8, -bsize*8, -bsize*8, -bsize*8, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2 ]; - st = [ bsize*8, -bsize*8, -bsize*4, bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 16, -16, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2 ]; - st = [ 8, -8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2 ]; - st = [ -bsize*8, -4, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 1, 2 ]; - st = [ bsize*8, bsize*8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2 ]; - st = [ bsize*8, -bsize*8, -bsize*8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, bsize*2, 2 ]; - st = [ bsize*8, -bsize*8, -bsize*8, -bsize*8, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2 ]; - st = [ bsize*8, -bsize*8, -bsize*4, -bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 8, -4, -4, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2 ]; - st = [ 8, -8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2 ]; - st = [ -bsize*8, -4, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 1, 2 ]; - st = [ bsize*8, bsize*8, -4, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2 ]; - st = [ bsize*8, -bsize*8, -bsize*8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 1, bsize*2, 2 ]; - st = [ bsize*8, -bsize*8, -bsize*8, -bsize*8, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2 ]; - st = [ bsize*8, -bsize*8, -bsize*4, -bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ -1, -1, -1, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 2, -2, 2, -4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 1, 2, 1, 2 ]; - st = [ 2, bsize*4, bsize*4, -bsize*4, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2 ]; - st = [ 2, 4, bsize*8, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 1, 2 ]; - st = [ 2, 4, 4, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2 ]; - st = [ 2, 4, 4, -4, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 1 ]; - st = [ 2, 4, 4, -4, 8, -bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2 ]; - st = [ 2, 4, 4, -8, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ -1, -1, -1, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2 ]; - st = [ 2, bsize*4, bsize*4, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2 ]; - st = [ 2, 4, bsize*8, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 1, 2 ]; - st = [ 2, 4, 4, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2 ]; - st = [ 2, 4, 4, -4, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 1 ]; - st = [ 2, 4, 4, -4, 8, -bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2 ]; - st = [ 2, 4, 4, -8, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ -1, -1, -1, -2, -4, -4 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2 ]; - st = [ 2, bsize*4, bsize*4, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2 ]; - st = [ 2, 4, bsize*8, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 1, 2 ]; - st = [ 2, 4, 4, -bsize*8, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2 ]; - st = [ 2, 4, 4, -4, bsize*8, -bsize*8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 1 ]; - st = [ 2, 4, 4, -4, 8, -bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 6-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2 ]; - st = [ 2, 4, 4, -8, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.7d.js b/test/test.7d.js deleted file mode 100644 index 08017ba..0000000 --- a/test/test.7d.js +++ /dev/null @@ -1,2408 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, -16, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2, 1, 2 ]; - st = [ 16, -16, 8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 2, 1, 1, 2 ]; - st = [ bsize*16, -8, 8, 4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2, 1, 2 ]; - st = [ bsize*16, -bsize*16, 8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 1, 1, 2 ]; - st = [ bsize*16, -bsize*16, bsize*8, 4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 1, 2 ]; - st = [ bsize*16, -bsize*16, bsize*8, bsize*8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2, 2 ]; - st = [ bsize*16, -bsize*16, -bsize*8, bsize*8, bsize*8, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, bsize*2 ]; - st = [ bsize*16, -bsize*16, -bsize*8, bsize*8, bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2, 1, 2 ]; - st = [ -8, -8, -4, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -16, 16, -16, -8, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2, 1, 2 ]; - st = [ 16, -16, 8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2, 1, 2 ]; - st = [ bsize*16, -8, 8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2, 1, 2 ]; - st = [ bsize*16, bsize*16, 8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 1, 1, 2 ]; - st = [ bsize*16, -bsize*16, -bsize*8, 4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 1, 2 ]; - st = [ bsize*16, -bsize*16, bsize*8, bsize*8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, 1, bsize*2, 2 ]; - st = [ bsize*16, -bsize*16, -bsize*16, -bsize*8, bsize*8, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, bsize*2 ]; - st = [ bsize*16, -bsize*16, bsize*8, bsize*8, bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 2, 1, 2, 1, 2, 1, 2 ]; - st = [ -8, -8, -4, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -16, 16, -16, 8, -4, -2, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2, 1, 2 ]; - st = [ 16, -16, 8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2, 1, 2 ]; - st = [ -bsize*16, -8, 8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2, 1, 2 ]; - st = [ bsize*16, -bsize*16, -8, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 1, 1, 2 ]; - st = [ bsize*16, -bsize*16, bsize*8, 4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 1, 2 ]; - st = [ bsize*16, -bsize*16, -bsize*8, -bsize*8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, 1, bsize*2, 2 ]; - st = [ bsize*16, -bsize*16, bsize*16, bsize*8, -bsize*8, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, bsize*2 ]; - st = [ bsize*16, -bsize*16, bsize*8, bsize*8, -bsize*4, bsize*4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 2 ]; - st = [ -1, -2, -2, -4, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, -2, 2, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2, 1, 2 ]; - st = [ 2, -bsize*4, bsize*4, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 2, 1, 2, 1 ]; - st = [ 2, -4, bsize*8, -bsize*8, bsize*16, -bsize*16, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2, 1, 2 ]; - st = [ 2, -4, -4, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2, 1, 2 ]; - st = [ 2, -4, -4, 4, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 1, 2 ]; - st = [ 2, -4, -4, 8, 8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2, 2 ]; - st = [ 2, -4, -4, 8, 8, 8, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, bsize*2 ]; - st = [ 2, -4, -4, 8, 8, 16, 16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 2 ]; - st = [ -1, -2, -2, -4, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, -2, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2, 1, 2 ]; - st = [ 2, bsize*4, bsize*4, -bsize*8, bsize*8, -bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2, 1, 2 ]; - st = [ 2, 4, -bsize*8, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2, 1, 2 ]; - st = [ 2, -4, 4, -bsize*8, bsize*8, -bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2, 2 ]; - st = [ 2, -4, -4, 4, bsize*8, bsize*8, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 1, 2 ]; - st = [ 2, -4, -4, 8, 8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2, 2 ]; - st = [ 2, -4, -4, 8, 8, 8, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, bsize*2 ]; - st = [ 2, -4, -4, 8, 8, 16, 16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 2 ]; - st = [ -1, -2, -2, -4, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, -4, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 2, 1, 2 ]; - st = [ 2, -bsize*4, -bsize*4, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 2, 1, 2 ]; - st = [ 2, -4, -bsize*8, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 1, 2, 1, 2 ]; - st = [ 2, -4, -4, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 1, 2, 2 ]; - st = [ 2, -4, -4, 4, bsize*8, bsize*8, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 1, 2 ]; - st = [ 2, -4, -4, 8, 8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2, 2 ]; - st = [ 2, -4, -4, 8, 8, 8, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 7-dimensional ndarray is truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, bsize*2 ]; - st = [ 2, -4, -4, 8, 8, 16, 16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.8d.js b/test/test.8d.js deleted file mode 100644 index 20fc2d4..0000000 --- a/test/test.8d.js +++ /dev/null @@ -1,2645 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, -16, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 2 ]; - st = [ 32, -16, 8, -8, -8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 2, 1, 2 ]; - st = [ -bsize*32, -16, 8, -8, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 2, 1, 2, 1, 2 ]; - st = [ -bsize*32, -bsize*32, 16, -8, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2, 2, 1, 2 ]; - st = [ -bsize*32, -bsize*32, bsize*32, -16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 2, 1, 2 ]; - st = [ -bsize*32, -bsize*32, bsize*16, -bsize*16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2, 2, 2 ]; - st = [ -bsize*32, -bsize*32, -bsize*16, -bsize*16, -bsize*16, 8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, bsize*2, 2 ]; - st = [ -bsize*16, -bsize*16, -bsize*8, bsize*8, bsize*8, bsize*8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, 1, bsize*2 ]; - st = [ - -bsize*16, - -bsize*16, - -bsize*8, - bsize*8, - bsize*8, - bsize*4, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, -16, 16, -16, -8, -4, 2, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 2 ]; - st = [ 32, 16, 8, -8, -8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 2, 1, 2 ]; - st = [ -bsize*32, -16, 8, -8, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 2, 1, 2, 1, 2 ]; - st = [ bsize*32, bsize*32, 16, 8, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2, 2, 1, 2 ]; - st = [ bsize*32, -bsize*32, -bsize*32, -16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 2, 1, 2 ]; - st = [ bsize*32, -bsize*32, bsize*16, -bsize*16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2, 2, 2 ]; - st = [ bsize*32, -bsize*32, -bsize*16, -bsize*16, bsize*16, 8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, bsize*2, 2 ]; - st = [ -bsize*16, -bsize*16, bsize*8, -bsize*8, -bsize*8, bsize*8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, 1, bsize*2 ]; - st = [ - -bsize*16, - -bsize*16, - bsize*8, - -bsize*8, - -bsize*8, - bsize*4, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, -16, 16, -16, 8, -4, -2, -2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 2 ]; - st = [ 32, 16, 8, -8, -8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 2, 1, 2 ]; - st = [ -bsize*32, -16, 8, -8, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, bsize*2, 2, 1, 2, 1, 2 ]; - st = [ -bsize*32, -bsize*32, 16, -8, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, bsize*2, 2, 2, 1, 2 ]; - st = [ -bsize*32, bsize*32, -bsize*32, -16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, bsize*2, 2, 1, 2 ]; - st = [ -bsize*32, -bsize*32, -bsize*16, -bsize*16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, bsize*2, 2, 2 ]; - st = [ -bsize*32, -bsize*32, bsize*16, bsize*16, -bsize*16, 8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, bsize*2, 2 ]; - st = [ -bsize*16, -bsize*16, bsize*8, bsize*8, -bsize*8, bsize*8, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, 1, bsize*2 ]; - st = [ - -bsize*16, - -bsize*16, - bsize*8, - bsize*8, - -bsize*8, - bsize*4, - -bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = [ -1, -1, -1, -1, -2, -4, -4, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, -2, 2, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2, 1, 2 ]; - st = [ 2, -bsize*4, bsize*4, bsize*8, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2, 1, 2 ]; - st = [ 2, -4, bsize*8, -bsize*8, bsize*8, bsize*8, -bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 1, 1, 2, 1, 2 ]; - st = [ 2, 4, 8, bsize*16, bsize*16, bsize*16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 1, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, bsize*16, bsize*16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 2, bsize*2, 1, 1, 2 ]; - st = [ 2, 4, 4, 8, 16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 1, 2 ]; - st = [ 2, -4, -4, 8, 8, 16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = [ -1, -1, -1, -1, -2, -4, -4, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -2, 2, -2, 2, 2, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2, 1, 2 ]; - st = [ 2, bsize*4, bsize*4, -bsize*8, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2, 1, 2 ]; - st = [ 2, -4, -bsize*8, bsize*8, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 1, 1, 2, 1, 2 ]; - st = [ 2, 4, 8, -bsize*16, bsize*16, -bsize*16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 1, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, bsize*16, bsize*16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 2, bsize*2, 1, 1, 2 ]; - st = [ 2, 4, 4, 8, 16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8, 16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = [ -1, -1, -1, -1, -2, -4, -4, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 1, 2, 1, 1, 2, 1, 2 ]; - st = [ 2, -bsize*4, -bsize*4, bsize*8, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 1, 1, 1, 2, 1, 2 ]; - st = [ 2, -4, bsize*8, bsize*8, bsize*8, bsize*8, bsize*16, bsize*16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 1, 1, 2, 1, 2 ]; - st = [ 2, -4, -8, bsize*16, bsize*16, bsize*16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 1, 2, 1, 2 ]; - st = [ 2, -4, -4, 8, bsize*16, bsize*16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 2, bsize*2, 1, 1, 2 ]; - st = [ 2, -4, -4, 8, 16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 1, 2 ]; - st = [ 2, -4, -4, 8, 8, 16, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, -4, -4, 8, 8, 8, 16, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an 8-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.9d.js b/test/test.9d.js deleted file mode 100644 index e5fc1d1..0000000 --- a/test/test.9d.js +++ /dev/null @@ -1,2978 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var blockSize = require( '@stdlib/ndarray-base-nullary-tiling-block-size' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, -16, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ 32, -16, 8, -8, -8, 4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ -bsize*32, -16, 8, -8, -8, 4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 1, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ -bsize*64, -bsize*32, 16, -8, -8, 4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 2, 1, 1, 2 ]; - st = [ bsize*64, -bsize*64, -bsize*32, 16, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ -bsize*64, -bsize*64, bsize*32, -bsize*16, -8, 4, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ -bsize*64, -bsize*64, -bsize*32, -bsize*32, -bsize*16, 8, -4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ - -bsize*64, - -bsize*64, - -bsize*32, - bsize*32, - bsize*32, - bsize*16, - 8, - -4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2 ]; - st = [ - -bsize*32, - -bsize*32, - -bsize*16, - bsize*16, - bsize*16, - -bsize*16, - bsize*8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2 ]; - st = [ - -bsize*32, - -bsize*32, - -bsize*16, - bsize*16, - bsize*8, - -bsize*8, - bsize*8, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, -16, 16, -8, -4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ 32, -16, -8, 8, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ bsize*32, -16, -8, 8, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, -bsize*32, -16, 8, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 2, 1, 1, 2 ]; - st = [ bsize*64, -bsize*64, -bsize*32, 16, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ bsize*64, -bsize*64, -bsize*32, bsize*16, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ bsize*64, -bsize*64, -bsize*32, bsize*32, bsize*16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ - bsize*64, - -bsize*64, - -bsize*32, - bsize*32, - bsize*32, - -bsize*16, - 8, - -4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2 ]; - st = [ - -bsize*32, - -bsize*32, - -bsize*16, - bsize*16, - bsize*16, - -bsize*16, - bsize*8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2 ]; - st = [ - -bsize*32, - -bsize*32, - -bsize*16, - bsize*16, - bsize*8, - -bsize*8, - bsize*8, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, -16, 16, -8, -4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ 32, -16, -8, 8, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ bsize*32, -16, -8, 8, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 2, 1, 1, 2 ]; - st = [ bsize*64, -bsize*32, -16, 8, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 2, 1, 1, 2 ]; - st = [ bsize*64, -bsize*64, -bsize*32, 16, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ bsize*64, -bsize*64, -bsize*32, bsize*16, 8, -4, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ bsize*64, -bsize*64, -bsize*32, bsize*32, bsize*16, -8, 4, -4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ - bsize*64, - -bsize*64, - -bsize*32, - bsize*32, - bsize*32, - -bsize*16, - 8, - -4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2 ]; - st = [ - -bsize*32, - -bsize*32, - -bsize*16, - bsize*16, - bsize*16, - -bsize*16, - bsize*8, - 4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (row-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, 1, 1, 2, bsize*2 ]; - st = [ - -bsize*32, - -bsize*32, - -bsize*16, - bsize*16, - bsize*8, - -bsize*8, - bsize*8, - bsize*4, - 2 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 2, 1, 2, 1, 1, 1, 1, 1 ]; - st = [ -1, -2, -4, -4, -8, -8, -8, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, -2, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ - 2, - bsize*4, - bsize*8, - bsize*16, - bsize*16, - bsize*16, - bsize*32, - bsize*32, - bsize*32 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 1, 1, 1, 2 ]; - st = [ - 2, - 4, - bsize*8, - bsize*16, - bsize*16, - bsize*16, - bsize*16, - bsize*16, - bsize*16 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 1, 1, 2 ]; - st = [ 2, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32, bsize*32 ]; // eslint-disable-line max-len - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ 2, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8, 16, bsize*32, bsize*64, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 8, 16, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 8, 8, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 2, 2, 1, 2, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 2, 1, 2, 1, 1, 1, 1, 1 ]; - st = [ -1, -2, -4, -4, -8, -8, -8, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, -2, 2, -2, 2, 1, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( 16, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( 16, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ - 2, - bsize*4, - bsize*8, - bsize*16, - bsize*16, - bsize*16, - bsize*32, - bsize*32, - bsize*32 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 1, 1, 1, 2 ]; - st = [ - 2, - 4, - bsize*8, - bsize*16, - bsize*16, - bsize*16, - bsize*16, - bsize*16, - bsize*16 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 1, 1, 2 ]; - st = [ 2, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32, bsize*32 ]; // eslint-disable-line max-len - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ 2, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8, 16, bsize*32, bsize*64, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 8, 16, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, complex)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 8, 8, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 2, 1, 2, 1, 1, 1, 1, 1 ]; - st = [ -1, -2, -4, -4, -8, -8, -8, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh ), dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, 2, 4, 8, 8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 2, 2, 2, 2, 2, -2, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( 16, dt ) ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( 16, dt ) ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ bsize*2, 2, 2, 1, 1, 2, 1, 1, 2 ]; - st = [ - 2, - bsize*4, - bsize*8, - bsize*16, - bsize*16, - bsize*16, - bsize*32, - bsize*32, - bsize*32 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, bsize*2, 2, 1, 1, 1, 1, 1, 2 ]; - st = [ - 2, - 4, - bsize*8, - bsize*16, - bsize*16, - bsize*16, - bsize*16, - bsize*16, - bsize*16 - ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 2, bsize*2, 2, 1, 1, 1, 1, 2 ]; - st = [ 2, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32, bsize*32 ]; // eslint-disable-line max-len - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, bsize*2, 2, 1, 1, 1, 2 ]; - st = [ 2, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 1, 2, bsize*2, 2, 1, 1, 2 ]; - st = [ 2, 4, 4, 4, 8, bsize*16, bsize*32, bsize*32, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 2, bsize*2, 2, 1, 2 ]; - st = [ 2, 4, 4, 8, 8, 16, bsize*32, bsize*64, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 2, bsize*2, 2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 16, bsize*32, bsize*64 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, bsize*2, 2 ]; - st = [ 2, 4, 4, 8, 8, 8, 8, 16, bsize*32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in a 9-dimensional ndarray are truthy (column-major, non-contiguous, large arrays, accessors)', function test( t ) { - var actual; - var bsize; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - - bsize = blockSize( dt ); - sh = [ 2, 1, 2, 1, 1, 1, 2, 2, bsize*2 ]; - st = [ 2, 4, 4, 8, 8, 8, 8, 16, 32 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, toAccessorArray( zeros( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, toAccessorArray( ones( numel( sh )*2, dt ) ), sh, st, o, ord ); // eslint-disable-line max-len - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 5209e24..0000000 --- a/test/test.js +++ /dev/null @@ -1,52 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns `false` if provided an empty input ndarray', function test( t ) { - var actual; - var x; - var n; - - x = ndarray( 'float64', ones( 8, 'float64' ), [ 0 ], [ 1 ], 0, 'row-major' ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.nd.js b/test/test.nd.js deleted file mode 100644 index 0a2c314..0000000 --- a/test/test.nd.js +++ /dev/null @@ -1,1062 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2025 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 zeros = require( '@stdlib/array-zeros' ); -var ones = require( '@stdlib/array-ones' ); -var scalar2ndarray = require( '@stdlib/ndarray-from-scalar' ); -var Complex128Array = require( '@stdlib/array-complex128' ); -var toAccessorArray = require( '@stdlib/array-base-to-accessor-array' ); -var numel = require( '@stdlib/ndarray-base-numel' ); -var shape2strides = require( '@stdlib/ndarray-base-shape2strides' ); -var strides2offset = require( '@stdlib/ndarray-base-strides2offset' ); -var ndarray = require( '@stdlib/ndarray-ctor' ); -var some = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof some, 'function', 'main export is a function'); - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, singleton dimensions, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -8, -4, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, 8, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, 16, 16, -8, -4, -2, 1 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, contiguous, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, contiguous, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -8, -4, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = [ -8, -8, -8, -8, -8, -8, -4, -4, -2, -2, -1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, 8, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, 8, 8, 4, 4, 2 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, -16, 16, -8, -4, -2, 1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (row-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'row-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 16, 16, 16, 16, 16, 16, -16, 16, -8, -4, -2, 1 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, singleton dimensions)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, singleton dimensions, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, singleton dimensions, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, contiguous)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, contiguous, negative strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = [ -1, -2, -2, -4, -4, -8, -8, -8, -8, -8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh ), dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh ), dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 16, 16, 16, 16 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides)', function test( t ) { - var actual; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'float64'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 1, 1, 1, 1, 1, 1, 1, 1, -1, -4, 8, -8 ]; - o = strides2offset( sh, st ); - - x = ndarray( dt, zeros( numel( sh )*2, dt ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - x = ndarray( dt, ones( numel( sh )*2, dt ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, contiguous, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, contiguous, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = shape2strides( sh, ord ); - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, contiguous, negative strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = [ -1, -2, -2, -4, -4, -8, -8, -8, -8, -8, -8 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, contiguous, negative strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = [ -1, -2, -2, -4, -4, -8, -8, -8, -8, -8, -8 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh ), 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 16, 16, 16, 16 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, non-contiguous, same sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 2, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1 ]; - st = [ 2, 4, 4, 8, 8, 16, 16, 16, 16, 16, 16 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, complex)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'complex128'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 1, 1, 1, 1, -1, 1, -1, 1, 1, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*4, 'float64' ); - x = ndarray( dt, new Complex128Array( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function tests whether at least `n` elements in an n-dimensional ndarray are truthy (column-major, non-contiguous, mixed sign strides, accessors)', function test( t ) { - var actual; - var xbuf; - var ord; - var sh; - var st; - var dt; - var o; - var x; - var n; - - dt = 'generic'; - ord = 'column-major'; - sh = [ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2 ]; - st = [ 1, 1, 1, 1, -1, 1, -1, 1, 1, -4, -8, 8 ]; - o = strides2offset( sh, st ); - - xbuf = zeros( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - n = scalar2ndarray( 1, { - 'dtype': 'generic' - }); - - actual = some( [ x, n ] ); - t.strictEqual( actual, false, 'returns expected value' ); - - xbuf = ones( numel( sh )*2, 'generic' ); - x = ndarray( dt, toAccessorArray( xbuf ), sh, st, o, ord ); - - actual = some( [ x, n ] ); - t.strictEqual( actual, true, 'returns expected value' ); - - t.end(); -});