-
-
Notifications
You must be signed in to change notification settings - Fork 990
Description
Description
This RFC proposes moving packages found in @stdlib/math/base/ops to respective sub-namespaces in @stdlib/number/* and @stdlib/complex/*. For example,
@stdlib/math/base/ops/add=>@stdlib/number/float64/base/add@stdlib/math/base/ops/addf=>@stdlib/number/float32/base/add- ...
Currently, we rely on prefixes and suffixes to distinguish packages in ops; however, this practice breaks down when wanting to add C variants for various integer dtypes. To keep things cleaner, this RFC advocates for migrating to dedicated dtype sub-namespaces for arithmetic, binary, and logical operations, where the latter were already planned for dtype sub-namespaces. Moving their arithmetic counterparts seems better for the sake of consistency than following the math/base/special precedent which stems from C99 and is primarily oriented to floating-point numbers.
Related Issues
Questions
No.
Other
Note that this RFC does not propose changing math/base/special. This applies only to ops which are more universal for each numeric dtype, and where we do actually want dedicated C interfaces for each dtype (e.g., int8_t stdlib_base_int8_add( int8_t x, int8_t y )).
The migration path would be as follows:
- Copy dtype-specific packages to their respective sub-namespaces.
- Update all require paths using the dtype-specific packages.
- Remove all dtype-specific packages from
@stdlib/math/base/opsnamespace.
Checklist
- I have read and understood the Code of Conduct.
- Searched for existing issues and pull requests.
- The issue name begins with
RFC:.