@@ -785,4 +785,62 @@ const _oldstyle_array_vcat_ = false
785
785
786
786
@deprecate write (x) write (STDOUT:: IO , x)
787
787
788
+ # Deprecate methods that convert Diagonal and Bidiagonal to <:AbstractTriangular.
789
+ function convert (:: Type{UpperTriangular} , A:: Diagonal )
790
+ depwarn (string (" `convert(::Type{UpperTriangular}, A::Diagonal)` and other methods " ,
791
+ " that convert `Diagonal`/`Bidiagonal` to `<:AbstractTriangular` are deprecated. " ,
792
+ " Consider calling the `UpperTriangular` constructor directly " ,
793
+ " (`UpperTriangular(A)`) instead." ), :convert )
794
+ UpperTriangular (A)
795
+ end
796
+ function convert (:: Type{LowerTriangular} , A:: Diagonal )
797
+ depwarn (string (" `convert(::Type{LowerTriangular}, A::Diagonal)` and other methods " ,
798
+ " that convert `Diagonal`/`Bidiagonal` to `<:AbstractTriangular` are deprecated. " ,
799
+ " Consider calling the `LowerTriangular` constructor directly " ,
800
+ " (`LowerTriangular(A)`) instead." ), :convert )
801
+ LowerTriangular (A)
802
+ end
803
+ function convert (:: Type{Base.LinAlg.UnitUpperTriangular} , A:: Diagonal )
804
+ depwarn (string (" `convert(::Type{UnitUpperTriangular}, A::Diagonal)` and other methods " ,
805
+ " that convert `Diagonal`/`Bidiagonal` to `<:AbstractTriangular` are deprecated. " ,
806
+ " Consider calling the `UnitUpperTriangular` constructor directly " ,
807
+ " (`Base.LinAlg.UnitUpperTriangular(A)`) instead." ), :convert )
808
+ if ! all (A. diag .== one (eltype (A)))
809
+ throw (ArgumentError (" matrix cannot be represented as UnitUpperTriangular" ))
810
+ end
811
+ Base. LinAlg. UnitUpperTriangular (full (A))
812
+ end
813
+ function convert (:: Type{Base.LinAlg.UnitLowerTriangular} , A:: Diagonal )
814
+ depwarn (string (" `convert(::Type{UnitLowerTriangular}, A::Diagonal)` and other methods " ,
815
+ " that convert `Diagonal`/`Bidiagonal` to `<:AbstractTriangular` are deprecated. " ,
816
+ " Consider calling the `UnitLowerTriangular` constructor directly " ,
817
+ " (`Base.LinAlg.UnitLowerTriangular(A)`) instead." ), :convert )
818
+ if ! all (A. diag .== one (eltype (A)))
819
+ throw (ArgumentError (" matrix cannot be represented as UnitLowerTriangular" ))
820
+ end
821
+ Base. LinAlg. UnitLowerTriangular (full (A))
822
+ end
823
+ function convert (:: Type{LowerTriangular} , A:: Bidiagonal )
824
+ depwarn (string (" `convert(::Type{LowerTriangular}, A::Bidiagonal)` and other methods " ,
825
+ " that convert `Diagonal`/`Bidiagonal` to `<:AbstractTriangular` are deprecated. " ,
826
+ " Consider calling the `LowerTriangular` constructor directly (`LowerTriangular(A)`) " ,
827
+ " instead." ), :convert )
828
+ if ! A. isupper
829
+ LowerTriangular (full (A))
830
+ else
831
+ throw (ArgumentError (" Bidiagonal matrix must have lower off diagonal to be converted to LowerTriangular" ))
832
+ end
833
+ end
834
+ function convert (:: Type{UpperTriangular} , A:: Bidiagonal )
835
+ depwarn (string (" `convert(::Type{UpperTriangular}, A::Bidiagonal)` and other methods " ,
836
+ " that convert `Diagoinal`/`Bidiagonal` to `<:AbstractTriangular` are deprecated. " ,
837
+ " Consider calling the `UpperTriangular` constructor directly (`UpperTriangular(A)`) " ,
838
+ " instead." ), :convert )
839
+ if A. isupper
840
+ UpperTriangular (full (A))
841
+ else
842
+ throw (ArgumentError (" Bidiagonal matrix must have upper off diagonal to be converted to UpperTriangular" ))
843
+ end
844
+ end
845
+
788
846
# End deprecations scheduled for 0.6
0 commit comments