Rustify some code.

This commit is contained in:
2018-10-24 20:15:29 +02:00
parent 77523e9db4
commit bcdabf9fbb
3 changed files with 85 additions and 118 deletions

View File

@@ -88,41 +88,38 @@ fn p1evl(x: f64, coef: &[f64], n: usize) -> f64 {
}
fn ndtri(y0: f64) -> f64 {
let mut code = 1;
let mut y = y0;
if y > (1.0 - 0.13533528323661269189) {
let code = if y > (1.0 - 0.13533528323661269189) {
y = 1.0 - y;
code = 0;
}
false
} else {
true
};
if y > 0.13533528323661269189 {
y = y - 0.5;
let y2 = y * y;
let x = y + y * (y2 * polevl(y2, &P0, 4) / p1evl(y2, &Q0, 8));
let x = x * S2PI;
return x;
return (y + y * (y2 * polevl(y2, &P0, 4) / p1evl(y2, &Q0, 8))) * S2PI;
}
let x = (-2.0 * y.ln()).sqrt();
let x0 = x - x.ln() / x;
let z = 1.0 / x;
let x0 = x - x.ln() / x;
let x1 = if x < 8.0 {
z * polevl(z, &P1, 8) / p1evl(z, &Q1, 8)
} else {
z * polevl(z, &P2, 8) / p1evl(z, &Q2, 8)
};
let mut x = x0 - x1;
if code != 0 {
x = -x;
if code {
x1 - x0
} else {
x0 - x1
}
x
}
pub fn cdf(x: f64) -> f64 {