stdlib-js / stdlib-js/stdlib

Incorrect domain of `t` used in `stats/base/dists/normal/mgf` across benchmark, test and examples

未关闭
#12,247 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
JavaScript
星标
6k
派生
1.3k
平均合并
1 天 3 小时
30 天内合并 PR
611

描述

For the mgf function in normal distribution `mgf( t, mu, sigma)` t is allowed to take any value within `(-inf, +inf)` but in the test, benchmarks and examples the domain used is `[0, +inf)` except the C benchmark file.

- For C benchmark in `stats/base/dists/normal/mgf/benchmark/c/benchmark.c` at [line 105](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/benchmark/c/benchmark.c#L105) the domain of `t` is correct.
```c
for ( i = 0; i < 100; i++ ) {
t[ i ] = random_uniform( -100.0, 100.0 );
```

- For JS benchmarks in `stats/base/dists/normal/mgf/benchmark/benchmark.js` at [line 76](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/benchmark/benchmark.js#L76-L78), [line 45](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/benchmark/benchmark.js#L45) and `stats/base/dists/normal/mgf/benchmark/benchmark.native.js` at [line 54](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/benchmark/benchmark.native.js#L54) the domain of `t` is `[0,1)`
```js
t = uniform( 100, 0.0, 1.0, {
'dtype': 'float64'
});
```

- For both C and JS examples in `stats/base/dists/normal/mgf/examples/index.js` at [line 30](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/examples/index.js#L30) the domain is `[0,10)` and in `stats/base/dists/normal/mgf/examples/c/example.c` at [line 37](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/examples/c/example.c#L37) the domain is `[0,1)`

JS file
```js
var t = uniform( 10, 0.0, 10.0, opts );
```
C file
```c
t = random_uniform( 0.0, 1.0 );
```

- For the Julia test fixture runner in `stats/base/dists/normal/mgf/test/fixtures/julia/runner.jl` at [line 74](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/test/fixtures/julia/runner.jl#L74), [line 80](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/test/fixtures/julia/runner.jl#L80) and [line 86](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/test/fixtures/julia/runner.jl#L86) the value `x` (which corresponds to `t`) is generated only from `[0, +inf)`, missing coverage of negative values which are valid inputs.
```julia
x = rand( 1000 ) .* 20.0;
...
x = rand( 1000 ) .* 20.0;
...
x = rand( 1000 ) .* 10.0;
```

- For the README.md examples in `stats/base/dists/normal/mgf/README.md` at [line 142](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/README.md?plain=1#L142) the JS example uses `[0,10)` and at [line 233](https://github.com/stdlib-js/stdlib/blob/develop/lib/node_modules/%40stdlib/stats/base/dists/normal/mgf/README.md?plain=1#L233) the C example uses `[0,1)` for the domain of `t`.

JS example
```js
var t = uniform( 10, 0.0, 10.0, opts );
```
C example
```c
t = random_uniform( 0.0, 1.0 );
```

贡献指南

打开贡献指南

调研方向

检查 stats/base/dists/normal/mgf/benchmark/benchmark.js、benchmark/benchmark.native.js、examples/index.js、examples/c/example.c、test/fixtures/julia/runner.jl 和 README.md 中的生成器和示例;将它们与现有的 C benchmark 进行比较。更新列出的输入,使有效的负 t 值得到一致覆盖,然后运行 normal/mgf 测试并检查示例和 benchmark。

由索引模型根据 Issue 内容生成。

评估

技术栈
c, javascript, julia
领域
documentation, testing
Issue 类型
缺陷
难度
3/5
预计耗时
1-2 天
活跃度
冷清
描述清晰度
描述清楚
新手友好度
72/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。