Skip to content

refactor: fix inconsistencies across packages in blas/ext/base* - #15146

Open
headlessNode wants to merge 68 commits into
stdlib-js:developfrom
headlessNode:blas/ref/index
Open

refactor: fix inconsistencies across packages in blas/ext/base*#15146
headlessNode wants to merge 68 commits into
stdlib-js:developfrom
headlessNode:blas/ref/index

Conversation

@headlessNode

Copy link
Copy Markdown
Member

Resolves stdlib-js/metr-issue-tracker#1316.

Description

What is the purpose of this pull request?

This pull request:

  • fix inconsistencies across packages in blas/ext/base*

Related Issues

Does this pull request have any related issues?

This pull request has the following related issues:

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.

Checklist

Please ensure the following tasks are completed before submitting this pull request.

AI Assistance

When authoring the changes proposed in this PR, did you use any kind of AI assistance?

  • Yes
  • No

If you answered "yes" above, how did you use AI assistance?

  • Code generation (e.g., when writing an implementation or fixing a bug)
  • Test/benchmark generation
  • Documentation (including examples)
  • Research and understanding

Disclosure

If you answered "yes" to using AI assistance, please provide a short disclosure indicating how you used AI assistance. This helps reviewers determine how much scrutiny to apply when reviewing your contribution. Example disclosures: "This PR was written primarily by Claude Code." or "I consulted ChatGPT to understand the codebase, but the proposed changes were fully authored manually by myself.".

Primarily written by Claude Code.


@stdlib-js/reviewers

@headlessNode
headlessNode requested a review from a team September 10, 2026 14:17
@stdlib-bot stdlib-bot added BLAS Issue or pull request related to Basic Linear Algebra Subprograms (BLAS). Needs Review A pull request which needs code review. labels Sep 10, 2026
@headlessNode

Copy link
Copy Markdown
Member Author

@kgryte This ended up being a lot bigger than I expected. The 'fixes' are mostly docs and tests related. I will updated the currently open related PR's as well.

@stdlib-bot

stdlib-bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Package Statements Branches Functions Lines
blas/ext/base/cindex-of $\\color{green}404/404$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}404/404$
$\\color{green}+0.00\\%$
blas/ext/base/cindex-of-column $\\color{green}558/558$
$\\color{green}+0.00\\%$
$\\color{green}54/54$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}558/558$
$\\color{green}+0.00\\%$
blas/ext/base/cindex-of-falsy $\\color{green}394/394$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}394/394$
$\\color{green}+0.00\\%$
blas/ext/base/cindex-of-row $\\color{green}558/558$
$\\color{green}+0.00\\%$
$\\color{green}54/54$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}558/558$
$\\color{green}+0.00\\%$
blas/ext/base/cindex-of-truthy $\\color{green}394/394$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}394/394$
$\\color{green}+0.00\\%$
blas/ext/base/clast-index-of-row $\\color{green}611/611$
$\\color{green}+0.00\\%$
$\\color{green}52/52$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}611/611$
$\\color{green}+0.00\\%$
blas/ext/base/dfirst-index-equal $\\color{green}388/388$
$\\color{green}+0.00\\%$
$\\color{green}18/18$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}388/388$
$\\color{green}+0.00\\%$
blas/ext/base/dfirst-index-greater-than $\\color{green}388/388$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}388/388$
$\\color{green}+0.00\\%$
blas/ext/base/dfirst-index-less-than $\\color{green}388/388$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}388/388$
$\\color{green}+0.00\\%$
blas/ext/base/dindex-of $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}18/18$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/dindex-of-column $\\color{green}541/541$
$\\color{green}+0.00\\%$
$\\color{green}52/52$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}541/541$
$\\color{green}+0.00\\%$
blas/ext/base/dindex-of-falsy $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/dindex-of-not-equal $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/dindex-of-row $\\color{green}541/541$
$\\color{green}+0.00\\%$
$\\color{green}52/52$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}541/541$
$\\color{green}+0.00\\%$
blas/ext/base/dindex-of-truthy $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/dlast-index-equal $\\color{green}398/398$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}398/398$
$\\color{green}+0.00\\%$
blas/ext/base/dlast-index-of $\\color{green}379/379$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}379/379$
$\\color{green}+0.00\\%$
blas/ext/base/dlast-index-of-falsy $\\color{green}380/380$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}380/380$
$\\color{green}+0.00\\%$
blas/ext/base/dlast-index-of-row $\\color{green}585/585$
$\\color{green}+0.00\\%$
$\\color{green}50/50$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}585/585$
$\\color{green}+0.00\\%$
blas/ext/base/dlast-index-of-truthy $\\color{green}380/380$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}380/380$
$\\color{green}+0.00\\%$
blas/ext/base/gfind-index $\\color{green}283/283$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}283/283$
$\\color{green}+0.00\\%$
blas/ext/base/gfind-last-index $\\color{green}200/200$
$\\color{green}+0.00\\%$
$\\color{green}9/9$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}200/200$
$\\color{green}+0.00\\%$
blas/ext/base/gfirst-index-almost-equal $\\color{green}293/293$
$\\color{green}+100.00\\%$
$\\color{green}21/21$
$\\color{green}+100.00\\%$
$\\color{green}3/3$
$\\color{green}+100.00\\%$
$\\color{green}293/293$
$\\color{green}+100.00\\%$
blas/ext/base/gfirst-index-almost-same-value $\\color{green}293/293$
$\\color{green}+0.00\\%$
$\\color{green}21/21$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}293/293$
$\\color{green}+0.00\\%$
blas/ext/base/gfirst-index-equal $\\color{green}284/284$
$\\color{green}+0.00\\%$
$\\color{green}23/23$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}284/284$
$\\color{green}+0.00\\%$
blas/ext/base/gfirst-index-greater-than $\\color{green}284/284$
$\\color{green}+0.00\\%$
$\\color{green}21/21$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}284/284$
$\\color{green}+0.00\\%$
blas/ext/base/gfirst-index-greater-than-equal $\\color{green}284/284$
$\\color{green}+0.00\\%$
$\\color{green}21/21$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}284/284$
$\\color{green}+0.00\\%$
blas/ext/base/gfirst-index-less-than $\\color{green}284/284$
$\\color{green}+0.00\\%$
$\\color{green}21/21$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}284/284$
$\\color{green}+0.00\\%$
blas/ext/base/gfirst-index-less-than-equal $\\color{green}284/284$
$\\color{green}+0.00\\%$
$\\color{green}21/21$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}284/284$
$\\color{green}+0.00\\%$
blas/ext/base/gfirst-index-not-equal $\\color{green}281/281$
$\\color{green}+0.00\\%$
$\\color{green}21/21$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}281/281$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-almost-same-value $\\color{green}269/269$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}269/269$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-column $\\color{green}555/555$
$\\color{green}+0.00\\%$
$\\color{green}58/58$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}555/555$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-falsy $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-falsy-row $\\color{green}230/230$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}230/230$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-greater-than $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-greater-than-equal $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-less-than $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-less-than-equal $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-not-equal $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-row $\\color{red}471/555$
$\\color{green}+0.00\\%$
$\\color{red}39/40$
$\\color{green}+0.00\\%$
$\\color{red}3/4$
$\\color{green}+0.00\\%$
$\\color{red}471/555$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-same-value $\\color{green}266/266$
$\\color{green}+0.00\\%$
$\\color{green}22/22$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}266/266$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-truthy $\\color{green}260/260$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}260/260$
$\\color{green}+0.00\\%$
blas/ext/base/gindex-of-truthy-row $\\color{green}348/348$
$\\color{green}+0.00\\%$
$\\color{green}43/43$
$\\color{green}+0.00\\%$
$\\color{green}3/3$
$\\color{green}+0.00\\%$
$\\color{green}348/348$
$\\color{green}+0.00\\%$
blas/ext/base/glast-index-almost-same-value $\\color{green}193/193$
$\\color{green}+100.00\\%$
$\\color{green}9/9$
$\\color{green}+100.00\\%$
$\\color{green}2/2$
$\\color{green}+100.00\\%$
$\\color{green}193/193$
$\\color{green}+100.00\\%$
blas/ext/base/glast-index-equal $\\color{green}191/191$
$\\color{green}+0.00\\%$
$\\color{green}9/9$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}191/191$
$\\color{green}+0.00\\%$
blas/ext/base/glast-index-greater-than $\\color{green}191/191$
$\\color{green}+100.00\\%$
$\\color{green}9/9$
$\\color{green}+100.00\\%$
$\\color{green}2/2$
$\\color{green}+100.00\\%$
$\\color{green}191/191$
$\\color{green}+100.00\\%$
blas/ext/base/glast-index-less-than $\\color{green}191/191$
$\\color{green}+0.00\\%$
$\\color{green}9/9$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}191/191$
$\\color{green}+0.00\\%$
blas/ext/base/glast-index-not-equal $\\color{green}191/191$
$\\color{green}+0.00\\%$
$\\color{green}9/9$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}191/191$
$\\color{green}+0.00\\%$
blas/ext/base/glast-index-of $\\color{green}182/182$
$\\color{green}+0.00\\%$
$\\color{green}9/9$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}182/182$
$\\color{green}+0.00\\%$
blas/ext/base/glast-index-of-falsy $\\color{green}182/182$
$\\color{green}+0.00\\%$
$\\color{green}9/9$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}182/182$
$\\color{green}+0.00\\%$
blas/ext/base/glast-index-of-row $\\color{green}555/555$
$\\color{green}+100.00\\%$
$\\color{green}56/56$
$\\color{green}+100.00\\%$
$\\color{green}3/3$
$\\color{green}+100.00\\%$
$\\color{green}555/555$
$\\color{green}+100.00\\%$
blas/ext/base/glast-index-of-truthy $\\color{green}182/182$
$\\color{green}+0.00\\%$
$\\color{green}9/9$
$\\color{green}+0.00\\%$
$\\color{green}2/2$
$\\color{green}+0.00\\%$
$\\color{green}182/182$
$\\color{green}+0.00\\%$
blas/ext/base/sfirst-index-equal $\\color{green}388/388$
$\\color{green}+0.00\\%$
$\\color{green}18/18$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}388/388$
$\\color{green}+0.00\\%$
blas/ext/base/sfirst-index-less-than $\\color{green}388/388$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}388/388$
$\\color{green}+0.00\\%$
blas/ext/base/sindex-of $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}18/18$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/sindex-of-column $\\color{green}541/541$
$\\color{green}+0.00\\%$
$\\color{green}52/52$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}541/541$
$\\color{green}+0.00\\%$
blas/ext/base/sindex-of-falsy $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/sindex-of-not-equal $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/sindex-of-row $\\color{green}541/541$
$\\color{green}+0.00\\%$
$\\color{green}52/52$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}541/541$
$\\color{green}+0.00\\%$
blas/ext/base/sindex-of-truthy $\\color{green}373/373$
$\\color{green}+0.00\\%$
$\\color{green}19/19$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}373/373$
$\\color{green}+0.00\\%$
blas/ext/base/slast-index-equal $\\color{green}398/398$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}398/398$
$\\color{green}+0.00\\%$
blas/ext/base/slast-index-of $\\color{green}379/379$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}379/379$
$\\color{green}+0.00\\%$
blas/ext/base/slast-index-of-falsy $\\color{green}380/380$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}380/380$
$\\color{green}+0.00\\%$
blas/ext/base/slast-index-of-row $\\color{green}585/585$
$\\color{green}+100.00\\%$
$\\color{green}50/50$
$\\color{green}+100.00\\%$
$\\color{green}4/4$
$\\color{green}+100.00\\%$
$\\color{green}585/585$
$\\color{green}+100.00\\%$
blas/ext/base/slast-index-of-truthy $\\color{green}380/380$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}380/380$
$\\color{green}+0.00\\%$
blas/ext/base/zindex-of $\\color{green}404/404$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}404/404$
$\\color{green}+0.00\\%$
blas/ext/base/zindex-of-column $\\color{green}558/558$
$\\color{green}+0.00\\%$
$\\color{green}54/54$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}558/558$
$\\color{green}+0.00\\%$
blas/ext/base/zindex-of-falsy $\\color{green}394/394$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}394/394$
$\\color{green}+0.00\\%$
blas/ext/base/zindex-of-row $\\color{green}558/558$
$\\color{green}+0.00\\%$
$\\color{green}54/54$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}558/558$
$\\color{green}+0.00\\%$
blas/ext/base/zindex-of-truthy $\\color{green}394/394$
$\\color{green}+0.00\\%$
$\\color{green}20/20$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}394/394$
$\\color{green}+0.00\\%$
blas/ext/base/zlast-index-of-falsy $\\color{green}388/388$
$\\color{green}+0.00\\%$
$\\color{green}17/17$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}388/388$
$\\color{green}+0.00\\%$
blas/ext/base/zlast-index-of-row $\\color{green}611/611$
$\\color{green}+0.00\\%$
$\\color{green}52/52$
$\\color{green}+0.00\\%$
$\\color{green}4/4$
$\\color{green}+0.00\\%$
$\\color{green}611/611$
$\\color{green}+0.00\\%$

The above coverage report was generated for the changes in this PR.

@headlessNode
headlessNode marked this pull request as draft September 10, 2026 16:55
@stdlib-bot stdlib-bot removed the Needs Review A pull request which needs code review. label Sep 10, 2026
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown_pkg_readmes
    status: passed
  - task: lint_markdown_docs
    status: na
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: passed
  - task: lint_repl_help
    status: passed
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: na
  - task: lint_javascript_tests
    status: passed
  - task: lint_javascript_benchmarks
    status: passed
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: missing_dependencies
  - task: lint_c_examples
    status: missing_dependencies
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
---
type: pre_commit_static_analysis_report
description: Results of running static analysis checks when committing changes.
report:
  - task: lint_filenames
    status: passed
  - task: lint_editorconfig
    status: passed
  - task: lint_markdown_pkg_readmes
    status: passed
  - task: lint_markdown_docs
    status: na
  - task: lint_markdown
    status: na
  - task: lint_package_json
    status: na
  - task: lint_repl_help
    status: na
  - task: lint_javascript_src
    status: na
  - task: lint_javascript_cli
    status: na
  - task: lint_javascript_examples
    status: passed
  - task: lint_javascript_tests
    status: na
  - task: lint_javascript_benchmarks
    status: na
  - task: lint_python
    status: na
  - task: lint_r
    status: na
  - task: lint_c_src
    status: na
  - task: lint_c_examples
    status: na
  - task: lint_c_benchmarks
    status: na
  - task: lint_c_tests_fixtures
    status: na
  - task: lint_shell
    status: na
  - task: lint_typescript_declarations
    status: passed
  - task: lint_typescript_tests
    status: na
  - task: lint_license_headers
    status: passed
---
@headlessNode

Copy link
Copy Markdown
Member Author

Expected benchmarks lint error due to time-out.

@headlessNode
headlessNode marked this pull request as ready for review September 11, 2026 14:08
@stdlib-bot stdlib-bot added the Needs Review A pull request which needs code review. label Sep 11, 2026
A complex number is truthy when at least one of its real or imaginary
components is truthy.

If unable to find a truthy element, the function returns `-1`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@headlessNode What is the rationale for removing this note?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see it is not present in, say, cindex-of.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I used index-of family as canon for docs related changes. Except a few places.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I suppose that makes sense. Although, we should be careful, as these specializations should be allowed to have API-specific notes, where appropriate.

A complex number is truthy when at least one of its real or imaginary
components is truthy.

If unable to find a truthy element, the function returns `-1`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question.

> var y0 = new {{alias:@stdlib/array/float64}}( [ 0.0, 0.0, 3.0, 0.0 ] );
> var y1 = new {{alias:@stdlib/array/float64}}( y0.buffer, y0.BYTES_PER_ELEMENT*1 );
> idx = {{alias}}( 2, x1, 1, y1, 1 )
> var idx = {{alias}}( 2, x1, 1, y1, 1 )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> var idx = {{alias}}( 2, x1, 1, y1, 1 )
> idx = {{alias}}( 2, x1, 1, y1, 1 )

This isn't correct. You've already declared idx at L42 above.

-1
> var y0 = new {{alias:@stdlib/array/float64}}( [ 9.0, 9.0, 0.0, 9.0 ] );
> var y1 = new {{alias:@stdlib/array/float64}}( y0.buffer, y0.BYTES_PER_ELEMENT*1 );
> var idx = {{alias}}( 2, x1, 1, y1, 1 )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> var idx = {{alias}}( 2, x1, 1, y1, 1 )
> idx = {{alias}}( 2, x1, 1, y1, 1 )

Same comment. You should go back through and ensure we are not redeclaring in these files.

var x;
var y;

x = new Float64Array( [ 1.0, 2.0, 3.0 ] );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why are we refactoring to inline here? The test cases are simpler when you use separate variables x and y here.

y = new Float64Array( [ 1.0, 2.0, 3.0 ] );

actual = dfirstIndexLessThan( 0, x, 1, y, 1 );
actual = dfirstIndexLessThan( 0, new Float64Array( [ 1.0, 2.0, 3.0 ] ), 1, new Float64Array( [ 1.0, 2.0, 3.0 ] ), 1 );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question. Why inline?

y = new Float64Array( [ 1.0, 2.0, 3.0 ] );

actual = dfirstIndexLessThan( 0, x, 1, 0, y, 1, 0 );
actual = dfirstIndexLessThan( 0, new Float64Array( [ 1.0, 2.0, 3.0 ] ), 1, 0, new Float64Array( [ 1.0, 2.0, 3.0 ] ), 1, 0 );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question.

y = new Float64Array( [ 1.0, 2.0, 3.0 ] );

actual = dfirstIndexLessThan( 0, x, 1, 0, y, 1, 0 );
actual = dfirstIndexLessThan( 0, new Float64Array( [ 1.0, 2.0, 3.0 ] ), 1, 0, new Float64Array( [ 1.0, 2.0, 3.0 ] ), 1, 0 );

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question.

Comment on lines +41 to +47
> var idx = {{alias}}( 3, x, 2 )
1

// Using view offsets:
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0 ] );
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
> var idx = {{alias}}( 3, x1, 2 )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> var idx = {{alias}}( 3, x, 2 )
1
// Using view offsets:
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0 ] );
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
> var idx = {{alias}}( 3, x1, 2 )
> idx = {{alias}}( 3, x, 2 )
1
// Using view offsets:
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0 ] );
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
> idx = {{alias}}( 3, x1, 2 )

Incorrect. Do not redeclare.


// Using an index offset:
> var x = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0 ] );
> var idx = {{alias}}.ndarray( 3, x, 2, 1 )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> var idx = {{alias}}.ndarray( 3, x, 2, 1 )
> idx = {{alias}}.ndarray( 3, x, 2, 1 )

// Negative stride...
actual = dindexOfFalsy( x.length, x, -1 );
t.strictEqual( actual, 1, 'returns expected value' );
tape( 'the function ignores truthy elements (e.g., non-zero values)', function test( t ) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is this test materially different than the one above?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not convinced it adds anything.

// Negative stride...
actual = dindexOfFalsy( x.length, x, -1 );
t.strictEqual( actual, 1, 'returns expected value' );
tape( 'the function ignores truthy elements (e.g., non-zero values)', opts, function test( t ) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question in this and other test files.

@@ -42,7 +42,7 @@
> var idx = {{alias}}( 3, 1.0, x, 2 )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> var idx = {{alias}}( 3, 1.0, x, 2 )
> idx = {{alias}}( 3, 1.0, x, 2 )

// Using view offsets:
> var x0 = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 1.0, 1.0 ] );
> var x1 = new {{alias:@stdlib/array/float64}}( x0.buffer, x0.BYTES_PER_ELEMENT*1 );
> var idx = {{alias}}( 2, 1.0, x1, 1 )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> var idx = {{alias}}( 2, 1.0, x1, 1 )
> idx = {{alias}}( 2, 1.0, x1, 1 )

alternative indexing semantics.

While typed array views mandate a view offset based on the underlying
buffer, the offset parameter supports indexing semantics based on a

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line wrapping?

// Advanced indexing:
// Using an index offset:
> var x = new {{alias:@stdlib/array/float64}}( [ 1.0, 2.0, 1.0, 3.0, 1.0, 4.0 ] );
> var idx = {{alias}}.ndarray( 3, 1.0, x, 2, 1 )

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
> var idx = {{alias}}.ndarray( 3, 1.0, x, 2, 1 )
> idx = {{alias}}.ndarray( 3, 1.0, x, 2, 1 )

@kgryte kgryte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left initial comments. Still some clean-up to do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BLAS Issue or pull request related to Basic Linear Algebra Subprograms (BLAS). Needs Review A pull request which needs code review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[RFC]: fix inconsistencies across packages in blas/ext/base*

3 participants