Guest User

Untitled

a guest
Jan 23rd, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.51 KB | None | 0 0
  1. fn subc(a: usize, b: usize) -> usize {
  2. if a >= b { a - b } else { 0 }
  3. }
  4.  
  5. fn convolve(a: &[f32], b: &[f32]) -> Vec<f32> {
  6. use std::cmp::min;
  7. let N = a.len() - 1;
  8. (0..2*N+1).map(|k|
  9. //(subc(k, N) .. min(k+1, N+1)).map(|i|
  10. (k.saturating_sub() .. min(k+1, N+1)).map(|i|
  11. a[i]*b[k-i]
  12. ).sum()
  13. ).collect()
  14. }
  15.  
  16. fn main() {
  17. let v1 = vec![1.0, 2.0, 3.0];
  18. let v2 = vec![0.0, 1.0, 0.5];
  19. let v3 = convolve(&v1, &v2);
  20. println!("{:?} * {:?} = {:?}", v1, v2, v3);
  21. }
Add Comment
Please, Sign In to add comment