noise_algebra/algebra/
mul.rs

1use std::ops::Mul;
2use ndarray::{Array, Dimension};
3use crate::Signal;
4
5impl<D: Dimension> Mul<Signal<Array<f32, D>>> for Signal<Array<f32, D>>{
6    type Output = Signal<Array<f32, D>>;
7
8    fn mul(self, rhs: Signal<Array<f32, D>>) -> Self::Output {
9        Signal {
10            value: self.value * rhs.value,
11            amp: self.amp * rhs.amp
12        }
13    }
14}
15
16impl<D: Dimension> Mul<&Signal<Array<f32, D>>> for Signal<Array<f32, D>>{
17    type Output = Signal<Array<f32, D>>;
18
19    fn mul(self, rhs: &Signal<Array<f32, D>>) -> Self::Output {
20        Signal {
21            value: self.value * &rhs.value,
22            amp: self.amp * rhs.amp
23        }
24    }
25}
26
27impl<D: Dimension> Mul<f32> for Signal<Array<f32, D>>{
28    type Output = Signal<Array<f32, D>>;
29
30    fn mul(self, rhs: f32) -> Self::Output {
31        Signal {
32            value: self.value * rhs,
33            amp: self.amp*rhs
34        }
35    }
36}
37
38impl<D: Dimension> Mul<f32> for &Signal<Array<f32, D>>{
39    type Output = Signal<Array<f32, D>>;
40
41    fn mul(self, rhs: f32) -> Self::Output {
42        Signal {
43            value: &self.value * rhs,
44            amp: self.amp*rhs
45        }
46    }
47}