Moar speed!

This commit is contained in:
2016-06-02 10:10:43 +02:00
parent c31fbc1a09
commit bbd2a2ecaf
4 changed files with 22 additions and 5 deletions

1
src/.#main.rs Symbolic link
View File

@@ -0,0 +1 @@
olsson@ralph.local.68703

View File

@@ -1,6 +1,8 @@
extern crate getopts;
extern crate byteorder;
extern crate pbr;
#[macro_use]
extern crate lazy_static;
use std::env;
use std::fs;
@@ -158,14 +160,21 @@ fn series(m: i32, id: i32) -> f64 {
fn expm(p: f64, ak: f64) -> f64 {
const NTP : usize = 25;
let mut tp = vec![1f64; NTP];
let mut i : i32 = 0;
let mut p1 : f64 = p;
let mut pt : f64;
let mut r : f64 = 1.0;
for n in 1..NTP {
tp[n] = 2.0 * tp[n - 1];
lazy_static! {
static ref TP : Vec<f64> = {
let mut v = vec![1f64; NTP];
for i in 1..NTP {
v[i] = 2.0 * v[i - 1];
}
v
};
}
if ak == 1.0 {
@@ -173,13 +182,13 @@ fn expm(p: f64, ak: f64) -> f64 {
}
for n in 0..NTP {
if tp[n] > p {
if TP[n] > p {
i = n as i32;
break;
}
}
pt = tp[(i - 1) as usize];
pt = TP[(i - 1) as usize];
for _ in 1..i + 1 {
if p1 >= pt {