[RFC]: add C implementations for `blas/ext/base/ndarray` packages
- 主要言語
- JavaScript
- スター
- 6k
- フォーク
- 1.3k
- 平均マージ
- 1日 3時間
- マージ済み PR(30日)
- 611
説明
## Purpose
This issue tracks the initiative to add native C implementations for typed ndarray APIs in `blas/ext/base/ndarray`. It serves as a central reference point for contributors so that work can be coordinated, PRs can be linked back here, and duplicate effort can be avoided.
---
## Summary
In `blas/ext/base/ndarray`, if a typed ndarray API is missing a native C implementation, it is fair game to add one. This issue serves as a general tracking reference for this ongoing initiative.
Candidates for C implementations typically include packages handling the following data types (indicated by their prefixes):
- `d` (double-precision)
- `s` (single-precision)
- `c` (complex single-precision)
- `z` (complex double-precision)
Since new strided APIs are constantly being added to `blas/ext/base`, this is intentionally kept as a generalized issue rather than an enumerated checklist, which would become outdated quickly.
## What to Do
If you find a package under `blas/ext/base/ndarray` that has a JavaScript implementation but is missing a native C addon (`src/`, `include/`, `manifest.json`, `binding.gyp`, etc.), you may go ahead and add the C implementation.
## Reference Library
To help contributors understand exactly what is required when adding a native C implementation, we have compiled a "Reference Library" of merged PRs. Please refer to the PR that best matches the type of package you are working on:
- **`d*`** (double-precision): [PR #10065](https://github.com/stdlib-js/stdlib/pull/10065)
- **`dnan*`** (double-precision with NaNs): [PR #10715](https://github.com/stdlib-js/stdlib/pull/10715)
- **`s*`** (single-precision): [PR #10078](https://github.com/stdlib-js/stdlib/pull/10078)
- **`snan*`** (single-precision with NaNs): [PR #10777](https://github.com/stdlib-js/stdlib/pull/10777)
- **`c*`** (complex single-precision): [PR #10696](https://github.com/stdlib-js/stdlib/pull/10696)
- **`z*`** (complex double-precision): [PR #10699](https://github.com/stdlib-js/stdlib/pull/10699)
## PR Title Convention
When opening a pull request for this work, please use the following title format so others can easily search GitHub and avoid duplicate PRs:
```text
feat: add C implementation for blas/ext/base/ndarray/
```
## You are Advised
- **Before starting**, please leave a comment on this issue mentioning which package you are working on (e.g., _"I am working on `dsum`"_). This helps avoid two contributors working on the same package simultaneously.
- **Reference this issue** in your PR description if you are adding a C implementation for any `blas/ext/base/ndarray` package. This helps reviewers understand the context and track progress against this initiative.
- **Check the PR tracker** before starting to make sure there is no existing open PR for the same package.
---
### Related Issues
None.
### Questions
No.
### Other
No.
### Checklist
- [x] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [x] Searched for existing issues and pull requests.
- [x] The issue name begins with `RFC:`.
コントリビューションガイド
調査の方向性
Choose an unclaimed package under blas/ext/base/ndarray and first compare its JavaScript implementation with the matching reference PR. Check the package's src/, include/, manifest.json, and binding.gyp files, then use the PR tracker and comment on this issue before starting. Done means the package has the corresponding native C implementation and a linked PR.
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- c, javascript
- 領域
- backend, data
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 48/100