44submodule (stdlib_linalg) stdlib_linalg_cholesky
55 use stdlib_linalg_constants
66 use stdlib_linalg_lapack, only: potrf
7+ use stdlib_linalg_lapack_aux, only: handle_potrf_info
78 use stdlib_linalg_state, only: linalg_state_type, linalg_error_handling, LINALG_ERROR, &
89 LINALG_INTERNAL_ERROR, LINALG_VALUE_ERROR
910 implicit none
@@ -13,31 +14,6 @@ submodule (stdlib_linalg) stdlib_linalg_cholesky
1314
1415 contains
1516
16- elemental subroutine handle_potrf_info(info,triangle,lda,n,err)
17- character, intent(in) :: triangle
18- integer(ilp), intent(in) :: info,lda,n
19- type(linalg_state_type), intent(out) :: err
20-
21- ! Process output
22- select case (info)
23- case (0)
24- ! Success
25- case (-1)
26- err = linalg_state_type(this,LINALG_INTERNAL_ERROR,'invalid triangle selection: ', &
27- triangle,'. should be U/L')
28- case (-2)
29- err = linalg_state_type(this,LINALG_VALUE_ERROR,'invalid matrix size n=',n)
30- case (-4)
31- err = linalg_state_type(this,LINALG_VALUE_ERROR,'invalid lda=',lda,': is < n = ',n)
32- case (1:)
33- err = linalg_state_type(this,LINALG_ERROR,'cannot complete factorization:',info, &
34- '-th order leading minor is not positive definite')
35- case default
36- err = linalg_state_type(this,LINALG_INTERNAL_ERROR,'catastrophic error')
37- end select
38-
39- end subroutine handle_potrf_info
40-
4117 #:for rk,rt,ri in RC_KINDS_TYPES
4218
4319 ! Compute the Cholesky factorization of a symmetric / Hermitian matrix, A = L*L^T = U^T*U.
0 commit comments