[RFC]: add C implementations for `blas/ext/base/ndarray` packages
- Lingua principale
- JavaScript
- Stelle
- 6k
- Fork
- 1.3k
- Merge medio
- 1g 3h
- PR unite (30g)
- 611
Descrizione
## 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:`.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- c, javascript
- Ambito
- backend, data
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100