Small adjustments.
This commit is contained in:
42
src/main.rs
42
src/main.rs
@@ -131,15 +131,15 @@ fn series(m: i32, id: i32) -> f64 {
|
|||||||
const EPS : f64 = 1e-17;
|
const EPS : f64 = 1e-17;
|
||||||
|
|
||||||
let mut ak : f64;
|
let mut ak : f64;
|
||||||
let mut s : f64 = 0.0;
|
|
||||||
let mut t : f64;
|
let mut t : f64;
|
||||||
|
let mut s : f64 = 0.0;
|
||||||
|
|
||||||
for k in 0..id {
|
for k in 0..id {
|
||||||
ak = (8 * k + m) as f64;
|
ak = (8 * k + m) as f64;
|
||||||
t = expm((id - k) as f64, ak);
|
t = expm((id - k) as f64, ak);
|
||||||
|
|
||||||
s = s + t / ak;
|
s += t / ak;
|
||||||
s = s - (s as i32) as f64;
|
s -= (s as i32) as f64;
|
||||||
}
|
}
|
||||||
|
|
||||||
for k in id..id + 101 {
|
for k in id..id + 101 {
|
||||||
@@ -150,20 +150,19 @@ fn series(m: i32, id: i32) -> f64 {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
s = s + t;
|
s += t;
|
||||||
s = s - (s as i32) as f64;
|
s -= (s as i32) as f64;
|
||||||
}
|
}
|
||||||
|
|
||||||
s
|
s
|
||||||
}
|
}
|
||||||
|
|
||||||
fn expm(p: f64, ak: f64) -> f64 {
|
fn expm(p: f64, ak: f64) -> f64 {
|
||||||
const NTP : usize = 25;
|
if ak == 1.0 {
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
let mut i : i32 = 0;
|
const NTP : usize = 25;
|
||||||
let mut p1 : f64 = p;
|
|
||||||
let mut pt : f64;
|
|
||||||
let mut r : f64 = 1.0;
|
|
||||||
|
|
||||||
lazy_static! {
|
lazy_static! {
|
||||||
static ref TP : Vec<f64> = {
|
static ref TP : Vec<f64> = {
|
||||||
@@ -177,32 +176,29 @@ fn expm(p: f64, ak: f64) -> f64 {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if ak == 1.0 {
|
let mut i : usize = 0;
|
||||||
return 0.0;
|
|
||||||
|
while TP[i] <= p {
|
||||||
|
i += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for n in 0..NTP {
|
let mut pt = TP[i - 1];
|
||||||
if TP[n] > p {
|
let mut p1 : f64 = p;
|
||||||
i = n as i32;
|
let mut r : f64 = 1.0;
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pt = TP[(i - 1) as usize];
|
|
||||||
|
|
||||||
for _ in 1..i + 1 {
|
for _ in 1..i + 1 {
|
||||||
if p1 >= pt {
|
if p1 >= pt {
|
||||||
r = 16.0 * r;
|
r = 16.0 * r;
|
||||||
r = r - ((r / ak) as i32) as f64 * ak;
|
r = r - ((r / ak) as i32) as f64 * ak;
|
||||||
|
|
||||||
p1 = p1 - pt;
|
p1 -= pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
pt = 0.5 * pt;
|
pt = 0.5 * pt;
|
||||||
|
|
||||||
if pt >= 1.0 {
|
if pt >= 1.0 {
|
||||||
r = r * r;
|
r *= r;
|
||||||
r = r - ((r / ak) as i32) as f64 * ak;
|
r -= ((r / ak) as i32) as f64 * ak;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user