|  | 
| 492 | 492 | end | 
| 493 | 493 | 
 | 
| 494 | 494 | @testset "Cholesky for AbstractMatrix" begin | 
| 495 |  | -    S = SymTridiagonal(fill(2.0, 4), ones(3)) | 
| 496 |  | -    C = cholesky(S) | 
| 497 |  | -    @test C.L * C.U ≈ S | 
|  | 495 | +    for T in (identity, big), M in (SymTridiagonal(fill(T(2.0), 4), ones(3)), | 
|  | 496 | +        Symmetric(SymTridiagonal(fill(T(2.0), 4), ones(3)), :U), | 
|  | 497 | +        Symmetric(SymTridiagonal(fill(T(2.0), 4), ones(3)), :L), | 
|  | 498 | +        Tridiagonal(ones(3), fill(T(2.0), 4), ones(3)), | 
|  | 499 | +        Hermitian(Tridiagonal(ones(3), fill(T(2.0), 4), ones(3)), :U), | 
|  | 500 | +        Hermitian(Bidiagonal(fill(T(2.0), 4), ones(3), :U), :U), | 
|  | 501 | +        Hermitian(Bidiagonal(fill(T(2.0), 4), ones(3), :U), :L), | 
|  | 502 | +        Hermitian(Bidiagonal(fill(T(2.0), 4), ones(3), :L), :L), | 
|  | 503 | +        ) | 
|  | 504 | +        C = cholesky(M) | 
|  | 505 | +        @test C.L * C.U ≈ M | 
|  | 506 | +        @test parent(C.U) isa Bidiagonal | 
|  | 507 | +        M[1,1] *= -1 | 
|  | 508 | +        @test_throws PosDefException cholesky(M) | 
|  | 509 | +        C = cholesky(M, check=false) | 
|  | 510 | +        @test C.info > 0 | 
|  | 511 | +        M[1,1] *= -1 | 
|  | 512 | +        M[end,end] *= -1 | 
|  | 513 | +        @test_throws PosDefException cholesky(M) | 
|  | 514 | +        C = cholesky(M, check=false) | 
|  | 515 | +        @test C.info > 0 | 
|  | 516 | +    end | 
|  | 517 | +    # test LowerTriangular version | 
|  | 518 | +    M = Hermitian(Bidiagonal(fill(2.0, 4), im * ones(3), :L), :L) | 
|  | 519 | +    C = cholesky!(copy(M)) | 
|  | 520 | +    @test C.L * C.U ≈ M | 
|  | 521 | +    # non-(RealOrComplex) eltype | 
|  | 522 | +    A = Tridiagonal(randn(Quaternion{Float64}, 4, 4) |> t -> t't) | 
|  | 523 | +    C = cholesky(A) | 
|  | 524 | +    @test C.L * C.U ≈ A | 
|  | 525 | +    @test parent(C.U) isa Bidiagonal | 
|  | 526 | +    A = Hermitian(Tridiagonal(randn(Quaternion{Float64}, 4, 4) |> t -> t't), :L) | 
|  | 527 | +    C = cholesky(A) | 
|  | 528 | +    @test C.L * C.U ≈ A | 
|  | 529 | +    @test parent(C.U) isa Bidiagonal | 
| 498 | 530 | end | 
| 499 | 531 | 
 | 
| 500 | 532 | @testset "constructor with non-BlasInt arguments" begin | 
|  | 
0 commit comments