1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2019年3月20日 |
---|
#17 in #quaternion
19KB
433 代码行
dual_quaternion.rs
这是一个基于 nalgebra & dual_num 的双四元数实现。
三角函数实现与网上找到的略有不同(例如 维基百科)。四元数构成一个非交换代数,乘以 u'
应实际上是另一个顺序。例如,sin(u, u') = (sin(u), u'*cos(u))
应实际上是 sin(u, u') = (sin(u), cos(u) * u')
。
https://github.com/potan/dual.rs/blob/master/src/lib.rs
https://blog.demofox.org/2014/12/30/dual-numbers-automatic-differentiation/
https://github.com/hoechp/ultracomplexmath/blob/954c19190e/src/util/hypercomplex/Dual.java
注意,由于四元数是非交换的,三角函数在某些地方与 idontgetoutmuch 不一致。
待办事项
- 三角函数略有误差
依赖项
~4MB
~70K SLoC