#complex #f32 #f64 #wright #omega #special-functions

wright_omega

Wright Omega函数的Rust实现

2个版本

0.1.1 2023年9月21日
0.1.0 2023年9月21日

#1094 in 数学

MIT许可

14KB
192 代码行

WrightOmega

这个库是对Lawrence, Corless和Jeffrey的wright.c文件的重写,使用Rust编写。

Wright Omega函数定义为方程ω + log(ω) = z的解。它是Lambert W函数的一个特例。

用法

该库可在crates.io上找到,可以通过将以下内容添加到您的Cargo.toml文件中来将其包含到项目中

[dependencies]
wright_omega = "0.1.0"

示例

use wright_omega::wright_omega;
use wright_omega::Complex;

fn main() {
    let z = Complex::new(0.0, 0.0);
    let omega = wright_omega(z);
    println!("Wright Omega of {} is {}", z, omega);
}

> 0+0i的Wright Omega是0.5671433+0i

功能

该库支持f32f64类型。默认启用f32功能。要使用f64,请将以下内容添加到您的Cargo.toml文件中

[dependencies]
wright_omega = { version = "0.1.0", features = ["f64"] }

其他实现

Scipy使用相同的实现用于Python。 Matlab也内置了实现。

参考文献

[1] Lawrence, Corless, and Jeffrey, “Algorithm 917: Complex Double-Precision Evaluation of the Wright Function.” ACM Transactions on Mathematical Software, 2012. DOI:10.1145/2168773.2168779.


依赖项

~270KB