1 个不稳定版本
0.1.0 | 2024年3月29日 |
---|
#470 in 数学
180KB
1K SLoC
perplex_num
概述
perplex_num
是一个Rust包,它根据 num_traits 包的数值抽象实现了复幻数。这个库支持各种数学函数,如 pow
、sqrt
、exp
、ln
、sinh
、sin
、cosh
和 tan
。此外,该包还提供了一种双曲极坐标形式,用于表示和操作双曲平面上的数,以及基于 nalgebra 的矩阵形式表示功能。
有关复幻数及其如何与该包的模块集成的详细解释(包括可视化),请参阅仓库中的 复幻数描述。
特性
- 《
Perplex
》结构体通过std::ops
和num_traits
提供了一套全面的常见数学运算。 - 模仿
nalgebra::Complex
的功能,Perplex
结构体复制了 num_complex 包中的大多数函数,并保持了一致的命名约定。 - 它支持整个平面的所有区域的双曲极坐标形式。
- 矩阵表示功能基于 nalgebra::Matrix 的稳健基础。
用法
安装
cargo add perplex_num
或将其添加到 Cargo.toml
[dependencies]
perplex_num = "0.1"
默认启用了 matrix
功能,这会将 nalgebra
包作为依赖项添加。可以通过以下方式禁用它:
[dependencies.perplex_num]
perplex_num = "0.1"
default-features = false
示例
examples
目录包含了各种使用 perplex_num
crate 的实际演示。这些示例不仅说明了困惑数的用法,还展示了如何生成如 困惑数描述 中所示的可视化。
例如,可以通过以下命令执行 examples/visualize_functions.rs
cargo run --example visualize_functions
这将生成一个图像,描述了将 sinh
、cos
、inv
和 exp
等函数应用于困惑数时的行为。
创建困惑数并执行操作
以下是一个快速示例,说明如何开始创建困惑数并执行基本操作
use perplex_num::Perplex;
fn main() {
// Create a Perplex number with real part 1.0 and hyperbolic part 0.5
let z = Perplex::new(1.0, 0.5);
// Calculate the hyperbolic sine of the perplex number
let z_sinh = z.sinh();
// Raise the perplex number or it's inverse to the power of 2
let z_squared = z.powu(2);
let z_inv_squared = z.powi(-2).expect("z is invertible");
println!("The hyperbolic sine of {} is {:.5}", z, z_sinh);
println!("{} raised to the power of 2 is {:.3}", z, z_squared);
println!("{} raised to the power of -2 is {:.3}", z, z_inv_squared);
}
覆盖率
测试覆盖率报告由 cargo tarpaulin 生成。使用以下命令调用它
cargo tarpaulin --verbose --all-targets --skip-clean --exclude-files "examples/*.rs" "benches/*.rs"
兼容性
perplex_num
crate 已在 rustc 1.76 上进行测试。
参考文献
依赖关系
~130–760KB
~15K SLoC