use super::function;
pub fn pi_gauss_legendre(iter: usize) -> f64 {
let mut a = 1.0;
let mut b = 1.0 / 2.0_f64.sqrt();
let mut t = 0.25;
let mut p = 1.0;
for _ in 0..iter {
let a_n = 0.5 * (a + b);
b = (a * b).sqrt();
t = t - p * (a - a_n) * (a - a_n);
p = 2.0 * p;
a = a_n;
}
(a + b) * (a + b) / (4.0 * t)
}
pub fn e_series(iter: i32) -> f64 {
(1.0 + 1.0 / (iter as f64)).powi(iter)
}
pub fn e_factorial(iter: i64) -> f64 {
let mut sum = 1.0;
for i in 0..iter {
sum += 1.0 / function::factorial(i) as f64;
}
sum
}