1
1
macro_rules! impl_traits {
2
- { $type: ident, $scalar : ty } => {
2
+ { $type: ident } => {
3
3
impl <const LANES : usize > core:: iter:: Sum <Self > for crate :: $type<LANES >
4
4
where
5
5
Self : crate :: LanesAtMost32 ,
@@ -18,24 +18,6 @@ macro_rules! impl_traits {
18
18
}
19
19
}
20
20
21
- impl <const LANES : usize > core:: iter:: Sum <crate :: $type<LANES >> for $scalar
22
- where
23
- crate :: $type<LANES >: crate :: LanesAtMost32 ,
24
- {
25
- fn sum<I : core:: iter:: Iterator <Item = crate :: $type<LANES >>>( iter: I ) -> Self {
26
- iter. sum:: <crate :: $type<LANES >>( ) . horizontal_sum( )
27
- }
28
- }
29
-
30
- impl <const LANES : usize > core:: iter:: Product <crate :: $type<LANES >> for $scalar
31
- where
32
- crate :: $type<LANES >: crate :: LanesAtMost32 ,
33
- {
34
- fn product<I : core:: iter:: Iterator <Item = crate :: $type<LANES >>>( iter: I ) -> Self {
35
- iter. product:: <crate :: $type<LANES >>( ) . horizontal_product( )
36
- }
37
- }
38
-
39
21
impl <' a, const LANES : usize > core:: iter:: Sum <& ' a Self > for crate :: $type<LANES >
40
22
where
41
23
Self : crate :: LanesAtMost32 ,
@@ -53,36 +35,18 @@ macro_rules! impl_traits {
53
35
iter. fold( Default :: default ( ) , core:: ops:: Mul :: mul)
54
36
}
55
37
}
56
-
57
- impl <' a, const LANES : usize > core:: iter:: Sum <& ' a crate :: $type<LANES >> for $scalar
58
- where
59
- crate :: $type<LANES >: crate :: LanesAtMost32 ,
60
- {
61
- fn sum<I : core:: iter:: Iterator <Item = & ' a crate :: $type<LANES >>>( iter: I ) -> Self {
62
- iter. sum:: <crate :: $type<LANES >>( ) . horizontal_sum( )
63
- }
64
- }
65
-
66
- impl <' a, const LANES : usize > core:: iter:: Product <& ' a crate :: $type<LANES >> for $scalar
67
- where
68
- crate :: $type<LANES >: crate :: LanesAtMost32 ,
69
- {
70
- fn product<I : core:: iter:: Iterator <Item = & ' a crate :: $type<LANES >>>( iter: I ) -> Self {
71
- iter. product:: <crate :: $type<LANES >>( ) . horizontal_product( )
72
- }
73
- }
74
38
}
75
39
}
76
40
77
- impl_traits ! { SimdF32 , f32 }
78
- impl_traits ! { SimdF64 , f64 }
79
- impl_traits ! { SimdU8 , u8 }
80
- impl_traits ! { SimdU16 , u16 }
81
- impl_traits ! { SimdU32 , u32 }
82
- impl_traits ! { SimdU64 , u64 }
83
- impl_traits ! { SimdUsize , usize }
84
- impl_traits ! { SimdI8 , i8 }
85
- impl_traits ! { SimdI16 , i16 }
86
- impl_traits ! { SimdI32 , i32 }
87
- impl_traits ! { SimdI64 , i64 }
88
- impl_traits ! { SimdIsize , isize }
41
+ impl_traits ! { SimdF32 }
42
+ impl_traits ! { SimdF64 }
43
+ impl_traits ! { SimdU8 }
44
+ impl_traits ! { SimdU16 }
45
+ impl_traits ! { SimdU32 }
46
+ impl_traits ! { SimdU64 }
47
+ impl_traits ! { SimdUsize }
48
+ impl_traits ! { SimdI8 }
49
+ impl_traits ! { SimdI16 }
50
+ impl_traits ! { SimdI32 }
51
+ impl_traits ! { SimdI64 }
52
+ impl_traits ! { SimdIsize }
0 commit comments