#代数 #复数 #分复数 #复幻数 #双曲几何 #闵可夫斯基 #科学数学

perplex_num

基于num-traits的复幻(双曲或分复)数

1 个不稳定版本

0.1.0 2024年3月29日

#470 in 数学

MIT/Apache

180KB
1K SLoC

perplex_num

MIT License License minimum rustc 1.76codecov

概述

perplex_num 是一个Rust包,它根据 num_traits 包的数值抽象实现了复幻数。这个库支持各种数学函数,如 powsqrtexplnsinhsincoshtan。此外,该包还提供了一种双曲极坐标形式,用于表示和操作双曲平面上的数,以及基于 nalgebra 的矩阵形式表示功能。

有关复幻数及其如何与该包的模块集成的详细解释(包括可视化),请参阅仓库中的 复幻数描述

特性

  • Perplex》结构体通过 std::opsnum_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

这将生成一个图像,描述了将 sinhcosinvexp 等函数应用于困惑数时的行为。

创建困惑数并执行操作

以下是一个快速示例,说明如何开始创建困惑数并执行基本操作

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