38 int info_factorization;
45 printf(
"Out of Memory \n ");
51 printf(
"-- PLASMA is initialized to run on %d cores. \n",cores);
63 if ( info_factorization != 0 )
64 printf(
"-- Error in CPOTRF example ! \n");
66 printf(
"-- Run of CPOTRF example successful ! \n");
84 int info_factorization;
88 eps = LAPACKE_slamch_work(
'e');
93 float *work = (
float *)malloc(N*
sizeof(
float));
100 LAPACKE_clacpy_work(LAPACK_COL_MAJOR,
' ', N, N, A1, LDA, Residual, N);
104 LAPACKE_clacpy_work(LAPACK_COL_MAJOR,
'u', N, N, A2, LDA, L1, N);
105 LAPACKE_clacpy_work(LAPACK_COL_MAJOR,
'u', N, N, A2, LDA, L2, N);
106 cblas_ctrmm(
CblasColMajor,
CblasLeft,
CblasUpper,
CblasConjTrans,
CblasNonUnit, N, N,
CBLAS_SADDR(alpha), L1, N, L2, N);
109 LAPACKE_clacpy_work(LAPACK_COL_MAJOR,
'l', N, N, A2, LDA, L1, N);
110 LAPACKE_clacpy_work(LAPACK_COL_MAJOR,
'l', N, N, A2, LDA, L2, N);
111 cblas_ctrmm(
CblasColMajor,
CblasRight,
CblasLower,
CblasConjTrans,
CblasNonUnit, N, N,
CBLAS_SADDR(alpha), L1, N, L2, N);
115 for (i = 0; i < N; i++)
116 for (j = 0; j < N; j++)
117 Residual[j*N+i] = L2[j*N+i] - Residual[j*N+i];
122 printf(
"============\n");
123 printf(
"Checking the Cholesky Factorization \n");
124 printf(
"-- ||L'L-A||_oo/(||A||_oo.N.eps) = %e \n",Rnorm/(Anorm*N*eps));
126 if ( isnan(Rnorm/(Anorm*N*eps)) || (Rnorm/(Anorm*N*eps) > 10.0) ){
127 printf(
"-- Factorization is suspicious ! \n");
128 info_factorization = 1;
131 printf(
"-- Factorization is CORRECT ! \n");
132 info_factorization = 0;
135 free(Residual); free(L1); free(L2); free(work);
137 return info_factorization;