|
156 | 156 | macro layoutgetindex(Typ) |
157 | 157 | esc(quote |
158 | 158 | ArrayLayouts.@_layoutgetindex $Typ |
159 | | - ArrayLayouts.@_layoutgetindex UpperOrLowerTriangular{<:Any,<:$Typ} |
| 159 | + ArrayLayouts.@_layoutgetindex ArrayLayouts.UpperOrLowerTriangular{<:Any,<:$Typ} |
160 | 160 | ArrayLayouts.@_layoutgetindex LinearAlgebra.Symmetric{<:Any,<:$Typ} |
161 | 161 | ArrayLayouts.@_layoutgetindex LinearAlgebra.Hermitian{<:Any,<:$Typ} |
162 | 162 | ArrayLayouts.@_layoutgetindex LinearAlgebra.Adjoint{<:Any,<:$Typ} |
@@ -219,21 +219,19 @@ for Mod in (:Adjoint, :Transpose, :Symmetric, :Hermitian) |
219 | 219 | end |
220 | 220 | end |
221 | 221 |
|
222 | | -# if we mean by AbstractTriangular only the four *Tringular types from LinearAlgebra, then |
223 | | -# the following signatures cannot occur (adjortrans is passed on to the data array) |
224 | | -# *(A::LayoutMatrix, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
225 | | -# *(A::LayoutMatrix, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
226 | | -# *(A::Adjoint{<:Any,<:AbstractTriangular}, B::LayoutMatrix) = mul(A, B) |
227 | | -# *(A::Transpose{<:Any,<:AbstractTriangular}, B::LayoutMatrix) = mul(A, B) |
228 | | - |
229 | | -# *(A::Transpose{<:Any,<:AbstractTriangular}, B::Adjoint{<:Any,<:LayoutMatrix}) = mul(A, B) |
230 | | -# *(A::Adjoint{<:Any,<:AbstractTriangular}, B::Transpose{<:Any,<:LayoutMatrix}) = mul(A, B) |
231 | | -# *(A::Adjoint{<:Any,<:AbstractTriangular}, B::Adjoint{<:Any,<:LayoutMatrix}) = mul(A, B) |
232 | | -# *(A::Transpose{<:Any,<:AbstractTriangular}, B::Transpose{<:Any,<:LayoutMatrix}) = mul(A, B) |
233 | | -# *(A::Adjoint{<:Any,<:LayoutMatrix}, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
234 | | -# *(A::Transpose{<:Any,<:LayoutMatrix}, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
235 | | -# *(A::Adjoint{<:Any,<:LayoutMatrix}, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
236 | | -# *(A::Transpose{<:Any,<:LayoutMatrix}, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 222 | +*(A::LayoutMatrix, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 223 | +*(A::LayoutMatrix, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 224 | +*(A::Adjoint{<:Any,<:AbstractTriangular}, B::LayoutMatrix) = mul(A, B) |
| 225 | +*(A::Transpose{<:Any,<:AbstractTriangular}, B::LayoutMatrix) = mul(A, B) |
| 226 | + |
| 227 | +*(A::Transpose{<:Any,<:AbstractTriangular}, B::Adjoint{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 228 | +*(A::Adjoint{<:Any,<:AbstractTriangular}, B::Transpose{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 229 | +*(A::Adjoint{<:Any,<:AbstractTriangular}, B::Adjoint{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 230 | +*(A::Transpose{<:Any,<:AbstractTriangular}, B::Transpose{<:Any,<:LayoutMatrix}) = mul(A, B) |
| 231 | +*(A::Adjoint{<:Any,<:LayoutMatrix}, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 232 | +*(A::Transpose{<:Any,<:LayoutMatrix}, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 233 | +*(A::Adjoint{<:Any,<:LayoutMatrix}, B::Adjoint{<:Any,<:AbstractTriangular}) = mul(A, B) |
| 234 | +*(A::Transpose{<:Any,<:LayoutMatrix}, B::Transpose{<:Any,<:AbstractTriangular}) = mul(A, B) |
237 | 235 |
|
238 | 236 | \(A::Diagonal{<:Any,<:LayoutVector}, B::Diagonal{<:Any,<:LayoutVector}) = ldiv(A, B) |
239 | 237 | \(A::Diagonal{<:Any,<:LayoutVector}, B::AbstractMatrix) = ldiv(A, B) |
|
0 commit comments