|
1 | 1 | module ArrayLayouts
|
2 |
| -using Base, Base.Broadcast, LinearAlgebra, FillArrays, SparseArrays, Compat |
| 2 | +using Base, Base.Broadcast, LinearAlgebra, FillArrays, SparseArrays |
3 | 3 | import LinearAlgebra.BLAS
|
4 | 4 |
|
5 | 5 | import Base: AbstractArray, AbstractMatrix, AbstractVector,
|
@@ -170,8 +170,25 @@ for Mod in (:Adjoint, :Transpose, :Symmetric, :Hermitian)
|
170 | 170 | @eval begin
|
171 | 171 | *(A::Diagonal{<:Any,<:LayoutVector}, B::$Mod{<:Any,<:LayoutMatrix}) = mul(A,B)
|
172 | 172 | *(A::$Mod{<:Any,<:LayoutMatrix}, B::Diagonal{<:Any,<:LayoutVector}) = mul(A,B)
|
| 173 | + *(A::Diagonal{<:Any,<:LayoutVector}, B::$Mod{<:Any,<:AbstractMatrix}) = mul(A,B) |
| 174 | + *(A::$Mod{<:Any,<:AbstractMatrix}, B::Diagonal{<:Any,<:LayoutVector}) = mul(A,B) |
173 | 175 | end
|
174 | 176 | end
|
| 177 | + |
| 178 | +*(A::LayoutMatrix, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 179 | +*(A::LayoutMatrix, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 180 | +*(A::Adjoint{<:Any,<:AbstractTriangular}, B::LayoutMatrix) = mul(A, B) |
| 181 | +*(A::Transpose{<:Any,<:AbstractTriangular}, B::LayoutMatrix) = mul(A, B) |
| 182 | + |
| 183 | +*(A::Transpose{<:Any,<:AbstractTriangular}, B::Adjoint{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 184 | +*(A::Adjoint{<:Any,<:AbstractTriangular}, B::Transpose{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 185 | +*(A::Adjoint{<:Any,<:AbstractTriangular}, B::Adjoint{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 186 | +*(A::Transpose{<:Any,<:AbstractTriangular}, B::Transpose{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 187 | +*(A::Adjoint{<:Any,<:LayoutMatrix}, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 188 | +*(A::Transpose{<:Any,<:LayoutMatrix}, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 189 | +*(A::Adjoint{<:Any,<:LayoutMatrix}, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 190 | +*(A::Transpose{<:Any,<:LayoutMatrix}, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 191 | + |
175 | 192 | \(A::Diagonal{<:Any,<:LayoutVector}, B::Diagonal{<:Any,<:LayoutVector}) = ldiv(A, B)
|
176 | 193 | \(A::Diagonal{<:Any,<:LayoutVector}, B::AbstractMatrix) = ldiv(A, B)
|
177 | 194 | \(A::AbstractMatrix, B::Diagonal{<:Any,<:LayoutVector}) = ldiv(A, B)
|
|
0 commit comments