Lines Matching refs:diag
4 Vec diag; member
20 PetscCall(VecCopy(ctx->inv_diag, ctx->diag)); in MatDiagonalSetUpDiagonal()
21 PetscCall(VecReciprocal(ctx->diag)); in MatDiagonalSetUpDiagonal()
34 PetscCall(VecCopy(ctx->diag, ctx->inv_diag)); in MatDiagonalSetUpInverseDiagonal()
49 PetscCall(VecAXPY(yctx->diag, a, xctx->diag)); in MatAXPY_Diagonal()
71 PetscCall(VecGetArrayRead(mat->diag, &v)); in MatGetRow_Diagonal()
74 PetscCall(VecRestoreArrayRead(mat->diag, &v)); in MatGetRow_Diagonal()
85 PetscCall(VecPointwiseMult(y, ctx->diag, x)); in MatMult_Diagonal()
96 PetscCall(VecPointwiseMult(v3, ctx->diag, v1)); in MatMultAdd_Diagonal()
101 PetscCall(VecPointwiseMult(w, ctx->diag, v1)); in MatMultAdd_Diagonal()
115 PetscCall(VecNorm(ctx->diag, type, nrm)); in MatNorm_Diagonal()
135 PetscCall(VecCopy(actx->diag, bctx->diag)); in MatDuplicate_Diagonal()
164 PetscErrorCode MatDiagonalGetDiagonal(Mat A, Vec *diag) in MatDiagonalGetDiagonal() argument
168 PetscAssertPointer(diag, 2); in MatDiagonalGetDiagonal()
169 *diag = NULL; in MatDiagonalGetDiagonal()
170 PetscUseMethod(A, "MatDiagonalGetDiagonal_C", (Mat, Vec *), (A, diag)); in MatDiagonalGetDiagonal()
174 static PetscErrorCode MatDiagonalGetDiagonal_Diagonal(Mat A, Vec *diag) in MatDiagonalGetDiagonal_Diagonal() argument
181 *diag = ctx->diag; in MatDiagonalGetDiagonal_Diagonal()
182 PetscCall(PetscObjectStateGet((PetscObject)*diag, &ctx->diag_state)); in MatDiagonalGetDiagonal_Diagonal()
200 PetscErrorCode MatDiagonalRestoreDiagonal(Mat A, Vec *diag) in MatDiagonalRestoreDiagonal() argument
204 PetscAssertPointer(diag, 2); in MatDiagonalRestoreDiagonal()
205 PetscUseMethod(A, "MatDiagonalRestoreDiagonal_C", (Mat, Vec *), (A, diag)); in MatDiagonalRestoreDiagonal()
209 static PetscErrorCode MatDiagonalRestoreDiagonal_Diagonal(Mat A, Vec *diag) in MatDiagonalRestoreDiagonal_Diagonal() argument
215 …PetscCheck(ctx->diag == *diag, PetscObjectComm((PetscObject)A), PETSC_ERR_ARG_WRONG, "Restored a d… in MatDiagonalRestoreDiagonal_Diagonal()
217 PetscCall(PetscObjectStateGet((PetscObject)*diag, &diag_state)); in MatDiagonalRestoreDiagonal_Diagonal()
222 *diag = NULL; in MatDiagonalRestoreDiagonal_Diagonal()
313 PetscCall(VecDuplicate(ctx->diag, &v)); in MatPermute_Diagonal()
314 PetscCall(VecCopy(ctx->diag, v)); in MatPermute_Diagonal()
337 PetscCall(VecDestroy(&ctx->diag)); in MatDestroy_Diagonal()
364 PetscCall(PetscObjectPrintClassNamePrefixType((PetscObject)ctx->diag, viewer)); in MatView_Diagonal()
367 PetscCall(VecView(ctx->diag, viewer)); in MatView_Diagonal()
378 PetscCall(VecCopy(ctx->diag, x)); in MatGetDiagonal_Diagonal()
392 PetscCall(VecAXPY(ctx->diag, 1.0, D)); in MatDiagonalSet_Diagonal()
399 PetscCall(VecCopy(D, ctx->diag)); in MatDiagonalSet_Diagonal()
405 PetscCall(VecPointwiseMax(ctx->diag, D, ctx->diag)); in MatDiagonalSet_Diagonal()
410 PetscCall(VecPointwiseMin(ctx->diag, D, ctx->diag)); in MatDiagonalSet_Diagonal()
425 PetscCall(VecShift(ctx->diag, a)); in MatShift_Diagonal()
437 PetscCall(VecScale(ctx->diag, a)); in MatScale_Diagonal()
449 PetscCall(VecPointwiseMult(ctx->diag, ctx->diag, l)); in MatDiagonalScale_Diagonal()
453 PetscCall(VecPointwiseMult(ctx->diag, ctx->diag, r)); in MatDiagonalScale_Diagonal()
465 PetscCall(VecConjugate(ctx->diag)); in MatConjugate_Diagonal()
466 PetscCall(PetscObjectStateGet((PetscObject)ctx->diag, &ctx->diag_state)); in MatConjugate_Diagonal()
484 Vec diag, newdiag; in MatTranspose_Diagonal() local
486 PetscCall(MatDiagonalGetDiagonal(A, &diag)); in MatTranspose_Diagonal()
487 PetscCall(VecDuplicate(diag, &newdiag)); in MatTranspose_Diagonal()
488 PetscCall(VecCopy(diag, newdiag)); in MatTranspose_Diagonal()
489 PetscCall(MatDiagonalRestoreDiagonal(A, &diag)); in MatTranspose_Diagonal()
493 PetscCall(MatDiagonalGetDiagonal(A, &diag)); in MatTranspose_Diagonal()
495 PetscCall(VecCopy(diag, newdiag)); in MatTranspose_Diagonal()
497 PetscCall(MatDiagonalRestoreDiagonal(A, &diag)); in MatTranspose_Diagonal()
508 if (!ctx->diag) { in MatSetUp_Diagonal()
511 PetscCall(MatCreateVecs(A, &ctx->diag, NULL)); in MatSetUp_Diagonal()
512 PetscCall(VecDuplicate(ctx->diag, &ctx->inv_diag)); in MatSetUp_Diagonal()
513 PetscCall(VecZeroEntries(ctx->diag)); in MatSetUp_Diagonal()
526 PetscCall(VecZeroEntries(ctx->diag)); in MatZeroEntries_Diagonal()
580 PetscErrorCode MatCreateDiagonal(Vec diag, Mat *J) in MatCreateDiagonal() argument
583 PetscValidHeaderSpecific(diag, VEC_CLASSID, 1); in MatCreateDiagonal()
584 PetscCall(MatCreate(PetscObjectComm((PetscObject)diag), J)); in MatCreateDiagonal()
586 PetscCall(VecGetLocalSize(diag, &m)); in MatCreateDiagonal()
587 PetscCall(VecGetSize(diag, &M)); in MatCreateDiagonal()
592 PetscCall(VecGetLayout(diag, &map)); in MatCreateDiagonal()
595 PetscCall(PetscObjectReference((PetscObject)diag)); in MatCreateDiagonal()
596 PetscCall(VecDestroy(&ctx->diag)); in MatCreateDiagonal()
598 ctx->diag = diag; in MatCreateDiagonal()
602 PetscCall(VecDuplicate(ctx->diag, &ctx->inv_diag)); in MatCreateDiagonal()
603 PetscCall(VecGetType(diag, &type)); in MatCreateDiagonal()
625 PetscCall(VecGetArrayRead(a->diag, &alpha)); in MatProductNumeric_Diagonal_Dense()
634 PetscCall(VecRestoreArrayRead(a->diag, &alpha)); in MatProductNumeric_Diagonal_Dense()