33 个版本 (稳定版)

2.6.0 2024年3月6日
2.5.3 2023年11月21日
2.5.2 2023年10月20日
2.5.1 2023年5月28日
0.2.4 2018年10月11日

#164算法

Download history 5/week @ 2024-05-19 1/week @ 2024-05-26 2/week @ 2024-06-02

每月下载量 856 次
clausen 中使用

LGPL-3.0-only

6MB
1.5K SLoC

polylog

Build Status Documentation Coverage Status

polylog 包提供了实数和复数多对数的 Rust 实现,包括二对数和对数三重积分。

polylog 包依赖于 num 包。

示例

use num::complex::Complex;
use polylog::{Li, Li0, Li1, Li2, Li3, Li4, Li5, Li6};

let x = 1.0;
let z = Complex::new(1.0, 1.0);
let n = 10;

// real polylogarithms for real arguments
println!("Li0({}) = {}", x, x.li0());      // Re[Li_0(x)]
println!("Li1({}) = {}", x, x.li1());      // Re[Li_1(x)]
println!("Li2({}) = {}", x, x.li2());      // Re[Li_2(x)] (dilogarithm)
println!("Li3({}) = {}", x, x.li3());      // Re[Li_3(x)] (trilogarithm)
println!("Li4({}) = {}", x, x.li4());      // Re[Li_4(x)]
println!("Li_{}({}) = {}", n, x, x.li(n)); // Re[Li_n(x)]

// complex polylogarithms for complex arguments
println!("Li0({}) = {}", z, z.li0());      // Li_0(z)
println!("Li1({}) = {}", z, z.li1());      // Li_1(z)
println!("Li2({}) = {}", z, z.li2());      // Li_2(z) (dilogarithm)
println!("Li3({}) = {}", z, z.li3());      // Li_3(z) (trilogarithm)
println!("Li4({}) = {}", z, z.li4());      // Li_4(z)
println!("Li5({}) = {}", z, z.li5());      // Li_5(z)
println!("Li6({}) = {}", z, z.li6());      // Li_6(z)
println!("Li_{}({}) = {}", n, z, z.li(n)); // Li_n(z)

备注

实数二对数的实现是针对 [arXiv:2201.01678] 的改编。

复数二对数的实现受到了 SPheno 中的实现的启发,并已转换为 Rust。

实数三重积分的实现是针对 [arXiv:2308.11619] 的改编。

一般 n 阶多对数的实现是针对 [arXiv:2010.09860] 的改编。

复制

polylog 在 GNU Lesser General Public License (GNU LGPL) 版本 3 下授权。

依赖项