2 stable releases

1.0.1 Mar 6, 2024
1.0.0 Nov 24, 2023

#287 in Math

27 downloads per month

LGPL-3.0-only

505KB
900 lines

clausen

Build Status Documentation Coverage Status

The clausen package provides Rust implementations of the Standard Clausen functions and Glaisher-Clausen functions of integer order for real or complex arguments.

The clausen package depends on the num and the polylog crates.

Example

use clausen::{Cl, Sl};
use num::complex::Complex;

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

println!("Cl_{}({}) = {}", n, x, x.cl(n)); // Cl_n(x)
println!("Cl_{}({}) = {}", n, z, z.cl(n)); // Cl_n(z)
println!("Sl_{}({}) = {}", n, x, x.sl(n)); // Sl_n(x)
println!("Sl_{}({}) = {}", n, z, z.sl(n)); // Sl_n(z)

Notes

The implementation of the Standard Clausen function x.cl(n) for real x and positive n follows the approach presented in [Jiming Wu, Xiaoping Zhang, Dongjie Liu, "An efficient calculation of the Clausen functions Cl_n(θ)(n >= 2)", Bit Numer Math 50, 193-206 (2010) https://doi.org/10.1007/s10543-009-0246-8].

Copying

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

Dependencies

~6.5MB
~11K SLoC