Lines Matching refs:chol

113   Mat_CHOLMOD   *chol     = (Mat_CHOLMOD *)F->data;
117 if (!chol->normal) {
118 QTB_handle = SuiteSparseQR_C_qmult(SPQR_QTX, chol->spqrfact, cholB, chol->common);
120 Y_handle = SuiteSparseQR_C_solve(SPQR_RETX_EQUALS_B, chol->spqrfact, QTB_handle, chol->common);
123 Z_handle = SuiteSparseQR_C_solve(SPQR_RTX_EQUALS_ETB, chol->spqrfact, cholB, chol->common);
125 Y_handle = SuiteSparseQR_C_solve(SPQR_RETX_EQUALS_B, chol->spqrfact, Z_handle, chol->common);
127 PetscCallExternal(!cholmod_l_free_dense, &Z_handle, chol->common);
130 PetscCallExternal(!cholmod_l_free_dense, &QTB_handle, chol->common);
136 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
148 PetscCallExternal(!cholmod_l_free_dense, &Y_handle, chol->common);
150 PetscCall(VecScale(X, chol->scale));
156 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
172 PetscCallExternal(!cholmod_l_free_dense, &Y_handle, chol->common);
174 PetscCall(MatScale(X, chol->scale));
180 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
184 RTB_handle = SuiteSparseQR_C_solve(SPQR_RTX_EQUALS_ETB, chol->spqrfact, cholB, chol->common);
186 Y_handle = SuiteSparseQR_C_qmult(SPQR_QX, chol->spqrfact, RTB_handle, chol->common);
189 PetscCallExternal(!cholmod_l_free_dense, &RTB_handle, chol->common);
195 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
207 PetscCallExternal(!cholmod_l_free_dense, &Y_handle, chol->common);
214 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
230 PetscCallExternal(!cholmod_l_free_dense, &Y_handle, chol->common);
237 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
243 PetscCall(PetscObjectTypeCompare((PetscObject)A, MATNORMALHERMITIAN, &chol->normal));
244 if (!chol->normal && !PetscDefined(USE_COMPLEX)) PetscCall(PetscObjectTypeCompare((PetscObject)A, MATNORMAL, &chol->normal));
245 PetscCall((*chol->Wrap)(A, PETSC_TRUE, &cholA, &aijalloc, &valloc));
246 err = !SuiteSparseQR_C_numeric(PETSC_SMALL, &cholA, chol->spqrfact, chol->common);
247 PetscCheck(!err, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "SPQR factorization failed with status %d", chol->common->status);
254 if (chol->normal) {
260 chol->scale = 1.0 / scale;
264 chol->scale = 1.0;
271 Mat_CHOLMOD *chol = (Mat_CHOLMOD *)F->data;
276 PetscCall(PetscObjectTypeCompare((PetscObject)A, MATNORMALHERMITIAN, &chol->normal));
277 if (!chol->normal && !PetscDefined(USE_COMPLEX)) PetscCall(PetscObjectTypeCompare((PetscObject)A, MATNORMAL, &chol->normal));
278 PetscCall((*chol->Wrap)(A, PETSC_TRUE, &cholA, &aijalloc, &valloc));
279 if (PetscDefined(USE_DEBUG)) PetscCallExternal(!cholmod_l_check_sparse, &cholA, chol->common);
280 if (chol->spqrfact) PetscCallExternal(!SuiteSparseQR_C_free, &chol->spqrfact, chol->common);
281 chol->spqrfact = SuiteSparseQR_C_symbolic(SPQR_ORDERING_DEFAULT, 1, &cholA, chol->common);
282 PetscCheck(chol->spqrfact, PetscObjectComm((PetscObject)F), PETSC_ERR_LIB, "CHOLMOD analysis failed using internal ordering with status %d", chol->common->status);
310 Mat_CHOLMOD *chol;
322 PetscCall(PetscNew(&chol));
324 chol->Wrap = MatWrapCholmod_SPQR_seqaij;
325 B->data = chol;
342 chol->common->itype = CHOLMOD_LONG;