wright_omega 0.1.1

A Rust implementation of the Wright Omega function
Documentation
# WrightOmega


This library is a rewrite of the `wright.c` file from Lawrence, Corless, and Jeffrey [[1]](https://dl.acm.org/doi/10.1145/2168773.2168779) in rust.

The [Wright Omega function](https://en.wikipedia.org/wiki/Wright_omega_function) is defined as the solution to the equation `ω + log(ω) = z`. It is a special case of the [Lambert W function](https://en.wikipedia.org/wiki/Lambert_W_function).

## Usage


The library is available on [crates.io](https://crates.io/crates/wright_omega) and can be included in your project by adding the following to your `Cargo.toml` file:

```toml
[dependencies]
wright_omega = "0.1.0"
```

## Example


```rust
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);
}
```

> \> Wright Omega of 0+0i is 0.5671433+0i

## Features


The library supports both `f32` and `f64` types. The `f32` feature is enabled by default. To use `f64` instead, add the following to your `Cargo.toml` file:

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

## Other Implementations


[Scipy](https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.wrightomega.html) uses the same implementation for Python.
[Matlab](https://www.mathworks.com/help/symbolic/sym.wrightomega.html) also has a built in implementation.

# References


[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.](https://dl.acm.org/doi/10.1145/2168773.2168779)

```

```