1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use std::cmp::min;
pub fn linspace<T>(start: T, end: T, steps: u64) -> Vec<f64>
where T: Into<f64>
{
let start: f64 = start.into();
let end: f64 = end.into();
let mut v = Vec::new();
let stepsize = (end - start) / (steps as f64);
for step in 0..steps {
v.push(start + step as f64 * stepsize);
}
return v;
}
pub fn zip2<T>(a: &Vec<T>, b: &Vec<T>) -> Vec<(T, T)>
where T: Copy
{
let shorter = min(a.len(), b.len());
let mut ret = Vec::new();
for i in 0..shorter {
ret.push((a[i], b[i]));
}
return ret;
}