Skip to content

[RFC]: add C implementations for blas/ext/base/ndarray packages #14819

Description

@ujjwalv01

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:

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:

feat: add C implementation for blas/ext/base/ndarray/<package-name>

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

  • I have read and understood the Code of Conduct.
  • Searched for existing issues and pull requests.
  • The issue name begins with RFC:.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    AcceptedRFC feature request which has been accepted.CIssue involves or relates to C.FeatureIssue or pull request for adding a new feature.Native AddonsIssue involves or relates to Node.js native add-ons.RFCRequest for comments. Feature requests and proposed changes.Tracking IssueTracking issue.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions