Polylog

Build Status Documentation

The Polylog package provides Rust implementations of real and complex polylogarithms, including the dilogarithm and trilogarithm.

The Polylog package depends on the num crate.

Example

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

Notes

The implementation of the complex dilogarithm has been inspired by the implementation in SPheno and has been translated to Rust.

Copying

Polylog is licenced under the GNU Lesser General Public License (GNU LGPL) version 3.