2个稳定版本
| 1.1.0 | 2024年4月29日 |
|---|---|
| 1.0.0 | 2024年4月23日 |
#214 in 数学
每月 53次下载
170KB
4.5K SLoC
rmathlib
R语言C库特殊函数的Rust版本。
优势
与原生C代码相比,本版本的优点包括
- 支持
wasm32-unknown-unknown目标(避免使用emscripten)。 - 借助
cargo doc提供更清晰的文档。 - 由于
cargo fmt,易于阅读。 - 当将此包作为依赖项加载时,启用“转到定义”(代码导航)。
- 关于使用的编译器和支持的Rust版本有更多明确的信息。
状态
以下函数已被移植
| 分布 | 密度 | 概率 | 分位数 | 随机生成 |
|---|---|---|---|---|
| 正态分布 | dnorm |
pnorm |
qnorm |
|
| Student's t | dt |
pt, pnt |
||
| Beta分布 | pbeta |
|||
| Poisson分布 | dpois |
|||
| Gamma分布 | dgamma |
pgamma |
许可
原始R代码根据GPL-2.0许可。因此,本移植也根据GPL-2.0许可。
GPL-2.0是一个非常严格的许可。包含GPL-2.0代码的每个项目都应该根据GPL-2.0许可(一个例外是仅将此库用于项目功能的一小部分(例如,参见 此处)。在这种情况下,您的项目将不被视为“衍生作品”,因此不受GPL-2.0的约束。
开发者提示
有关在 test/nmath/ 中调试C代码的一些提示
要从C打印,设置
std::env::set_var("CFLAGS", "-DDEBUG_bratio");
并使用 --nocapture 如此
$ cargo watch -x 'test -- --nocapture'
在C中打印时,请确认数字是否打印正确。看起来 REprintf 并非总是能正确打印数字。要修复这个问题,可以将 REprintf 替换为 printf(以及一些 \n)。
例如,通过以下方式测试表示:
double tmp = 1.2;
REprintf("from c: x=%g\n", x);
或
#include <stdio.h>
double tmp = 1.2;
printf("from c: x=%g\n", x);
依赖项
~410KB