1个不稳定版本
0.1.0 | 2020年9月25日 |
---|
#1229 in 数学
47KB
757 代码行
nikisas
以速度和实现简单性为代价,以精度为代价实现常见数学函数,支持no_std
环境。
实现中包含算法解释和用于查找多项式系数的Sollya程序,位于sollya
目录。
如果您需要小内存占用和性能开销合理的数学函数实现,请使用micromath crate。
用法
use nikisas::{ln, consts::E};
assert_eq!(ln(E), 1.0);
文档
请参阅crates.io上的文档。
许可协议
nikisas遵循MIT许可协议。请自由使用、贡献或传播。
lib.rs
:
以速度和实现简单性为代价,以精度为代价实现常见数学函数,支持no_std
环境。
实现中包含算法解释和用于查找多项式系数的Sollya程序,位于sollya
目录。
如果您需要小内存占用和性能开销合理的数学函数实现,请使用micromath crate。
用法
use nikisas::{ln, consts::E};
assert_eq!(ln(E), 1.0);
包含的内容
不多。这(至少目前)是教育目的。以下是列表
- 指数 -
exp(x)
、pow(x, p)
、pow2(p)
、pow10(p)
- 对数 -
ln(x)
、log2(x)
、log10(x)
- 三角函数 -
sin(x)
,cos(x)
,tan(x)
,cot(x)
请注意,三角函数在某些输入值上的实现结果较差(因此它们未能通过我们当前的测试)。
错误
这些实现已经彻底测试,误差被限制在0.1% 或 4位小数以内。测试涉及从有效区间进行随机抽样。误差计算的基准是Rust标准库中相应函数的实现。
真实误差的表格在此
函数 | 最大相对 | 均方根(整体质量) |
---|---|---|
cos | N/A | N/A |
cot | N/A | N/A |
exp | 4.15e-6 | 1.39e-6 |
ln | 9.60e-8 | 4.05e-8 |
log2 | 1.29e-7 | 4.08e-8 |
log10 | 2.02e-7 | 6.24e-8 |
pow2 | 1.19e-7 | 3.53e-8 |
pow10 | 4.47e-6 | 1.49e-6 |
sin | N/A | N/A |
tan | N/A | N/A |
名称
这就是故事。如果我们把“libm”(广泛使用的数学库缩写)读作“lib em”并且不在中间停顿,我们就会得到单词“libem”。只要稍加想象,我们就能听到“líbem” /'liːbɛm/,这是捷克语单词líbáme /'liːbaːmɛ/的口语形式,意思是“我们亲吻”。现在 wekiss 并不是一个很酷的库名,所以它需要先通过英语-世界语翻译,然后我们在这里: nikisas。命名是困难的,但至少你可以在使用这个小软件的同时体验爱情。
许可协议
nikisas采用MIT许可。请随意使用它,贡献或传播这个信息。