|
81 | 81 | function *(a::PolyadicT, b::Arr, bs::PolyadicT...) |
82 | 82 | return *(a, unwrap(b), bs...) |
83 | 83 | end |
84 | | -function *(a::LinearAlgebra.Adjoint{T, <: AbstractVector}, b::Arr, bs::PolyadicT...) where {T} |
| 84 | +function *(a::LinearAlgebra.Adjoint{T, <: AbstractVector}, b::Arr, bs::PolyadicT...) where {T <: Number} |
85 | 85 | return *(a, unwrap(b), bs...) |
86 | 86 | end |
87 | | -function *(a::LinearAlgebra.Adjoint{T, <: AbstractVector}, b::Arr, c::AbstractVector, bs::PolyadicT...) where {T} |
| 87 | +function *(a::LinearAlgebra.Adjoint{T, <: AbstractVector}, b::Arr, c::AbstractVector, bs::PolyadicT...) where {T <: Number} |
88 | 88 | return *(a, unwrap(b), unwrap(c), bs...) |
89 | 89 | end |
90 | 90 | function *(a::Number, b::Arr, bs::PolyadicT...) |
@@ -122,6 +122,20 @@ function +(x1::Arr, x2::Arr, args::AbstractArray...) |
122 | 122 | return +(unwrap(x1), unwrap(x2), args...) |
123 | 123 | end |
124 | 124 |
|
| 125 | +for T1 in [Arr, AbstractArray], T2 in [Arr, AbstractArray] |
| 126 | + T1 == T2 == AbstractArray && continue |
| 127 | + @eval Base.:(\)(x1::$T1{Num, 1}, x2::$T2{Num, 1}) = Num(unwrap(x1) \ unwrap(x2)) |
| 128 | + @eval Base.:(\)(x1::$T1{Num, 1}, x2::$T2{Num, 2}) = Arr{Num, 2}(unwrap(x1) \ unwrap(x2)) |
| 129 | + @eval Base.:(\)(x1::$T1{Num, 2}, x2::$T2{Num, 1}) = Arr{Num, 1}(unwrap(x1) \ unwrap(x2)) |
| 130 | + @eval Base.:(\)(x1::$T1{Num, 2}, x2::$T2{Num, 2}) = Arr{Num, 2}(unwrap(x1) \ unwrap(x2)) |
| 131 | + |
| 132 | + @eval Base.:(/)(x1::$T1{Num, 1}, x2::$T2{Num, 1}) = Arr{Num, 2}(unwrap(x1) / unwrap(x2)) |
| 133 | + @eval Base.:(/)(x1::$T1{Num, 1}, x2::$T2{Num, 2}) = Arr{Num, 2}(unwrap(x1) / unwrap(x2)) |
| 134 | + @eval Base.:(/)(x1::$T1{Num, 2}, x2::$T2{Num, 2}) = Arr{Num, 2}(unwrap(x1) / unwrap(x2)) |
| 135 | +end |
| 136 | + |
| 137 | +Base.:(/)(x1::Num, x2::Arr{Num, 1}) = Arr{Num, 2}(unwrap(x1) / unwrap(x2)) |
| 138 | + |
125 | 139 | #################### MAP-REDUCE ################ |
126 | 140 |
|
127 | 141 | SymbolicUtils.@map_methods Arr unwrap wrap |
|
0 commit comments