noise_algebra/algebra/
mul.rs1use 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}