Moar speed!
This commit is contained in:
19
src/main.rs
19
src/main.rs
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user