|
| 1 | +const StaticULT{TA} = Union{UpperTriangular{TA,<:StaticMatrix},LowerTriangular{TA,<:StaticMatrix},UnitUpperTriangular{TA,<:StaticMatrix},UnitLowerTriangular{TA,<:StaticMatrix}} |
| 2 | + |
1 | 3 | @inline transpose(A::LowerTriangular{<:Any,<:StaticMatrix}) =
|
2 | 4 | UpperTriangular(transpose(A.data))
|
3 | 5 | @inline adjoint(A::LowerTriangular{<:Any,<:StaticMatrix}) =
|
|
14 | 16 | UnitLowerTriangular(transpose(A.data))
|
15 | 17 | @inline adjoint(A::UnitUpperTriangular{<:Any,<:StaticMatrix}) =
|
16 | 18 | UnitLowerTriangular(adjoint(A.data))
|
17 |
| -@inline Base.:*(A::Adjoint{<:Any,<:StaticVector}, B::LinearAlgebra.AbstractTriangular{<:Any,<:StaticMatrix}) = |
| 19 | +@inline Base.:*(A::Adjoint{<:Any,<:StaticVector}, B::StaticULT{<:Any}) = |
18 | 20 | adjoint(adjoint(B) * adjoint(A))
|
19 |
| -@inline Base.:*(A::Transpose{<:Any,<:StaticVector}, B::LinearAlgebra.AbstractTriangular{<:Any,<:StaticMatrix}) = |
| 21 | +@inline Base.:*(A::Transpose{<:Any,<:StaticVector}, B::StaticULT{<:Any}) = |
20 | 22 | transpose(transpose(B) * transpose(A))
|
21 |
| -@inline Base.:*(A::LinearAlgebra.AbstractTriangular{<:Any,<:StaticMatrix}, B::Adjoint{<:Any,<:StaticVector}) = |
| 23 | +@inline Base.:*(A::StaticULT{<:Any}, B::Adjoint{<:Any,<:StaticVector}) = |
22 | 24 | adjoint(adjoint(B) * adjoint(A))
|
23 |
| -@inline Base.:*(A::LinearAlgebra.AbstractTriangular{<:Any,<:StaticMatrix}, B::Transpose{<:Any,<:StaticVector}) = |
| 25 | +@inline Base.:*(A::StaticULT{<:Any}, B::Transpose{<:Any,<:StaticVector}) = |
24 | 26 | transpose(transpose(B) * transpose(A))
|
25 | 27 |
|
26 |
| -const StaticULT{TA} = Union{UpperTriangular{TA,<:StaticMatrix},LowerTriangular{TA,<:StaticMatrix},UnitUpperTriangular{TA,<:StaticMatrix},UnitLowerTriangular{TA,<:StaticMatrix}} |
27 |
| - |
28 | 28 | @inline Base.:\(A::StaticULT, B::StaticVecOrMatLike) = _A_ldiv_B(Size(A), Size(B), A, B)
|
29 | 29 | @inline Base.:/(A::StaticVecOrMatLike, B::StaticULT) = transpose(transpose(B) \ transpose(A))
|
30 | 30 |
|
@@ -73,3 +73,7 @@ const StaticULT{TA} = Union{UpperTriangular{TA,<:StaticMatrix},LowerTriangular{T
|
73 | 73 | @inbounds return similar_type(B, TAB)(tuple($(X...)))
|
74 | 74 | end
|
75 | 75 | end
|
| 76 | + |
| 77 | +function _first_zero_on_diagonal(A::StaticULT) |
| 78 | + _first_zero_on_diagonal(A.data) |
| 79 | +end |
0 commit comments