@@ -14,7 +14,7 @@ immutable CholeskyPivoted{T} <: Factorization{T}
14
14
end
15
15
16
16
function chol! {T<:BlasFloat} (A:: StridedMatrix{T} , uplo:: Symbol = :U )
17
- C, info = LAPACK. potrf! (string (uplo)[ 1 ] , A)
17
+ C, info = LAPACK. potrf! (char_uplo (uplo), A)
18
18
return @assertposdef Triangular (C, uplo, false ) info
19
19
end
20
20
@@ -57,7 +57,7 @@ function chol!{T}(A::AbstractMatrix{T}, uplo::Symbol=:U)
57
57
end
58
58
59
59
function cholfact! {T<:BlasFloat} (A:: StridedMatrix{T} , uplo:: Symbol = :U ; pivot= false , tol= 0.0 )
60
- uplochar = string (uplo)[ 1 ]
60
+ uplochar = char_uplo (uplo)
61
61
if pivot
62
62
A, piv, rank, info = LAPACK. pstrf! (uplochar, A, tol)
63
63
return CholeskyPivoted {T} (A, uplochar, piv, rank, tol, info)
@@ -66,6 +66,12 @@ function cholfact!{T<:BlasFloat}(A::StridedMatrix{T}, uplo::Symbol=:U; pivot=fal
66
66
end
67
67
cholfact! (A:: AbstractMatrix , uplo:: Symbol = :U ) = Cholesky {eltype(A),typeof(A),uplo} (chol! (A, uplo). data)
68
68
69
+ function cholfact! {T<:BlasFloat,S,UpLo} (C:: Cholesky{T,S,UpLo} )
70
+ _, info = LAPACK. potrf! (char_uplo (UpLo), C. UL)
71
+ info[1 ]> 0 && throw (PosDefException (info[1 ]))
72
+ C
73
+ end
74
+
69
75
cholfact {T<:BlasFloat} (A:: StridedMatrix{T} , uplo:: Symbol = :U ; pivot= false , tol= 0.0 ) = cholfact! (copy (A), uplo, pivot= pivot, tol= tol)
70
76
function cholfact {T} (A:: StridedMatrix{T} , uplo:: Symbol = :U ; pivot= false , tol= 0.0 )
71
77
S = promote_type (typeof (chol (one (T))),Float32)
0 commit comments