[RFC]: Add C implementation for @stdlib/stats/base/dists/chi/mode
#3494
Labels
Accepted
RFC feature request which has been accepted.
C
Issue involves or relates to C.
difficulty: 2
May require some initial design or R&D, but should be straightforward to resolve and/or implement.
Feature
Issue or pull request for adding a new feature.
Good First Issue
A good first issue for new contributors!
priority: Normal
Normal priority concern or feature request.
RFC
Request for comments. Feature requests and proposed changes.
Statistics
Issue or pull request related to statistical functionality.
Description
This RFC proposes adding a C implementation, including a Node.js native addon, C benchmarks, and C examples, for the
@stdlib/stats/base/dists/chi/mode
package.When adding support, the following tasks should be completed:
src
folder within the package's directory.lib
folder to allow benchmarking and unit testing the native implementation from JavaScript.make
commands (as documented below).To provide a concrete example of what a PR adding the desired method should contain, see #3354, which is a PR adding a C implementation for the CDF of an arcsine distribution. This should provide an idea of what is expected.
Prerequisites
lib/main.js
and its required modules to identify allstdlib
functions used.Related Issues
#3355
Questions
No.
Other
Once the implementation is ready including C examples and benchmarks, we should be able to run the following
make
commands.Build native add-on
NODE_ADDONS_PATTERN="@stdlib/stats/base/dists/chi/mode" make install-node-addons
Run C examples
make examples-c-files FILES="$(pwd)/lib/node_modules/@stdlib/stats/base/dists/chi/mode/examples/c/example.c"
Run C benchmarks
make benchmark-c-files FILES="$(pwd)/lib/node_modules/@stdlib/stats/base/dists/chi/mode/benchmark/c/benchmark.c"
Run JavaScript benchmarks
make benchmark-javascript-files FILES="$(pwd)/lib/node_modules/@stdlib/stats/base/dists/chi/mode/benchmark/benchmark.native.js"
Run all tests
Notes
Checklist
RFC:
.The text was updated successfully, but these errors were encountered: