Allow multiplying matrix by `Complex<>` on the left

This simply inserts `Complex<f32>` and `Complex<f64>` into the
`left_scalar_mul_impl!` macro alongside the primitives' trait
impls.
This commit is contained in:
Terence 2023-12-24 10:47:37 -05:00
parent 1cfc539a96
commit e5ec825882
1 changed files with 17 additions and 1 deletions

View File

@ -1,4 +1,5 @@
use num::{One, Zero}; use num::{One, Zero};
use num_complex::Complex;
use std::iter; use std::iter;
use std::ops::{ use std::ops::{
Add, AddAssign, Div, DivAssign, Index, IndexMut, Mul, MulAssign, Neg, Sub, SubAssign, Add, AddAssign, Div, DivAssign, Index, IndexMut, Mul, MulAssign, Neg, Sub, SubAssign,
@ -545,7 +546,22 @@ macro_rules! left_scalar_mul_impl(
)*} )*}
); );
left_scalar_mul_impl!(u8, u16, u32, u64, usize, i8, i16, i32, i64, isize, f32, f64); left_scalar_mul_impl!(
u8,
u16,
u32,
u64,
usize,
i8,
i16,
i32,
i64,
isize,
f32,
f64,
Complex<f32>,
Complex<f64>
);
// Matrix × Matrix // Matrix × Matrix
impl<'a, 'b, T, R1: Dim, C1: Dim, R2: Dim, C2: Dim, SA, SB> Mul<&'b Matrix<T, R2, C2, SB>> impl<'a, 'b, T, R1: Dim, C1: Dim, R2: Dim, C2: Dim, SA, SB> Mul<&'b Matrix<T, R2, C2, SB>>