Description
Description
This RFC proposes adding a new package to the stats/incr/*
namespace: @stdlib/stats/incr/nanwmean
.
This package is similar to @stdlib/stats/incr/wmean
, except that it performs special handling of NaN
values.
Key Points
When implementing this package, you'll need to do the following:
Create package files
To see examples of similar packages, see @stdlib/stats/incr/wmean
(propagates NaN
values) and @stdlib/stats/incr/nansum
(wraps a NaN
propagating accumulator and skips NaN
values).
In particular notice how nansum
is a thin wrapper around sum
. In most cases, this is what we are looking for.
While the package proposed in this RFC will not match the implementations found in the above packages, those packages should provide a conceptual idea of what is desired. Do not simply copy-paste the code found in those packages without reasoning about expected behavior and API design.
Update source files
Once you've created package files, proceed to update all tests, documentation, and examples to reflect the API and expected behavior for the package. You should spend some time studying the tests in @stdlib/stats/incr/wmean
. We expect this package to have equivalent and fully comprehensive tests. The primary difference will be in the handling of NaN
values.
To see an example of what is expected, study the tests in
Compare and contrast the tests in that pair of packages.
Run tests and other commands
For each of the following commands, please run them from the root stdlib repository directory (not the package folder!).
To run unit tests,
make test TESTS_FILTER=".*/stats/incr/nanwmean/.*"
To run examples,
make examples EXAMPLES_FILTER=".*/stats/incr/nanwmean/.*"
To run benchmarks,
make benchmark BENCHMARKS_FILTER=".*/stats/incr/nanwmean/.*"
Create pull request
Provided all tests, examples, and benchmarks successfully execute and pass and that you've updated the package's documentation, you are now ready to open a pull request!
Notes
- If you are interested in contributing a PR which addresses this RFC and still getting familiar with our project conventions, please do not submit LLM-generated code. Please consult our contributing guidelines and the associated development guide. Failure to respect project conventions will result in your PR being rejected without review. Thank you for understanding!
Checklist
- I have read and understood the Code of Conduct.
- Searched for existing issues and pull requests.
- The issue name begins with
[RFC]:
.