The Polylog package provides Rust implementations of real and complex polylogarithms, including the dilogarithm and trilogarithm.
The Polylog package depends on the num
crate.
```rust extern crate num; extern crate polylog; use num::complex::Complex; use polylog::{Li2, Li3, Li4, Li5, Li6};
fn main() { let x = 1.0; let z = Complex::new(1.0, 1.0); println!("Li2({}) = {}", x, x.li2()); // Re[Li2(x)] (real dilogarithm) println!("Li2({}) = {}", z, z.li2()); // Li2(z) (complex dilogarithm) println!("Li3({}) = {}", x, x.li3()); // Re[Li3(x)] (real trilogarithm) println!("Li3({}) = {}", z, z.li3()); // Li3(z) (complex trilogarithm) println!("Li4({}) = {}", x, x.li4()); // Re[Li4(x)] println!("Li4({}) = {}", z, z.li4()); // Li4(z) println!("Li5({}) = {}", z, z.li5()); // Li5(z) println!("Li6({}) = {}", z, z.li6()); // Li6(z) } ```
The implementation of the complex dilogarithm has been inspired by the implementation in SPheno and has been translated to Rust.
Polylog is licenced under the GNU Lesser General Public License (GNU LGPL) version 3.