polylog
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
use Complex;
use ;
let x = 1.0;
let z = new;
let n = 10;
// real polylogarithms for real arguments
println!; // Re[Li_0(x)]
println!; // Re[Li_1(x)]
println!; // Re[Li_2(x)] (dilogarithm)
println!; // Re[Li_3(x)] (trilogarithm)
println!; // Re[Li_4(x)]
println!; // Re[Li_n(x)]
// complex polylogarithms for complex arguments
println!; // Li_0(z)
println!; // Li_1(z)
println!; // Li_2(z) (dilogarithm)
println!; // Li_3(z) (trilogarithm)
println!; // Li_4(z)
println!; // Li_5(z)
println!; // Li_6(z)
println!; // Li_n(z)
Notes
The implementation of the real dilogarithm is an adaptation of [arXiv:2201.01678].
The implementation of the complex dilogarithm has been inspired by the implementation in SPheno and has been translated to Rust.
The implementation of the real trilogarithm is an adaptation of [arXiv:2308.11619].
The implementation of the general n-th order polylogarithm is an adaptation of [arXiv:2010.09860].
Copying
polylog is licenced under the GNU Lesser General Public License (GNU LGPL) version 3.