|
3 | 3 | ## Triangular |
4 | 4 |
|
5 | 5 | # could be renamed to Triangular when that name has been fully deprecated |
6 | | -abstract type AbstractTriangular{T,S<:AbstractMatrix} <: AbstractMatrix{T} end |
| 6 | +abstract type AbstractTriangular{T} <: AbstractMatrix{T} end |
7 | 7 |
|
8 | 8 | # First loop through all methods that don't need special care for upper/lower and unit diagonal |
9 | | -for t in (:LowerTriangular, :UnitLowerTriangular, :UpperTriangular, |
10 | | - :UnitUpperTriangular) |
| 9 | +for t in (:LowerTriangular, :UnitLowerTriangular, :UpperTriangular, :UnitUpperTriangular) |
11 | 10 | @eval begin |
12 | | - struct $t{T,S<:AbstractMatrix{T}} <: AbstractTriangular{T,S} |
| 11 | + struct $t{T,S<:AbstractMatrix{T}} <: AbstractTriangular{T} |
13 | 12 | data::S |
14 | 13 |
|
15 | 14 | function $t{T,S}(data) where {T,S<:AbstractMatrix{T}} |
@@ -854,9 +853,9 @@ for t in (:LowerTriangular, :UnitLowerTriangular, :UpperTriangular, :UnitUpperTr |
854 | 853 | end |
855 | 854 | end |
856 | 855 |
|
857 | | -errorbounds(A::AbstractTriangular{T,<:AbstractMatrix}, X::AbstractVecOrMat{T}, B::AbstractVecOrMat{T}) where {T<:Union{BigFloat,Complex{BigFloat}}} = |
| 856 | +errorbounds(A::AbstractTriangular{T}, X::AbstractVecOrMat{T}, B::AbstractVecOrMat{T}) where {T<:Union{BigFloat,Complex{BigFloat}}} = |
858 | 857 | error("not implemented yet! Please submit a pull request.") |
859 | | -function errorbounds(A::AbstractTriangular{TA,<:AbstractMatrix}, X::AbstractVecOrMat{TX}, B::AbstractVecOrMat{TB}) where {TA<:Number,TX<:Number,TB<:Number} |
| 858 | +function errorbounds(A::AbstractTriangular{TA}, X::AbstractVecOrMat{TX}, B::AbstractVecOrMat{TB}) where {TA<:Number,TX<:Number,TB<:Number} |
860 | 859 | TAXB = promote_type(TA, TB, TX, Float32) |
861 | 860 | errorbounds(convert(AbstractMatrix{TAXB}, A), convert(AbstractArray{TAXB}, X), convert(AbstractArray{TAXB}, B)) |
862 | 861 | end |
|
0 commit comments