|
| 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