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