Lines Matching refs:scalings
21 PetscScalar *scalings; member
57 PetscCall(PetscFree(shell->scalings)); in MatDestroy_Composite()
93 if (shell->scalings) { in MatMult_Composite_Multiplicative()
95 for (PetscInt i = 0; i < shell->nmat; i++) scale *= shell->scalings[i]; in MatMult_Composite_Multiplicative()
121 if (shell->scalings) { in MatMultTranspose_Composite_Multiplicative()
123 for (PetscInt i = 0; i < shell->nmat; i++) scale *= shell->scalings[i]; in MatMultTranspose_Composite_Multiplicative()
258 PetscCall(VecAXPY(y, shell->scalings ? shell->scalings[i] : 1.0, y2)); in MatMult_Composite()
262 if (shell->scalings) { in MatMult_Composite()
265 PetscCall(VecAXPY(y, shell->scalings[i], y2)); in MatMult_Composite()
287 if (shell->scalings) { in MatMultTranspose_Composite()
288 PetscCall(VecScale(y, shell->scalings[0])); in MatMultTranspose_Composite()
294 if (!shell->scalings) PetscCall(MatMultTransposeAdd(next->mat, x, y, y)); in MatMultTranspose_Composite()
297 PetscCall(VecAXPY(y, shell->scalings[i++], y2)); in MatMultTranspose_Composite()
314 if (shell->scalings) PetscCall(VecScale(v, shell->scalings[0])); in MatGetDiagonal_Composite()
320 PetscCall(VecAXPY(v, shell->scalings ? shell->scalings[i++] : 1.0, shell->work)); in MatGetDiagonal_Composite()
436 if (shell->scalings) { in MatCompositeAddMat_Composite()
437 PetscCall(PetscRealloc(sizeof(PetscScalar) * shell->nmat, &shell->scalings)); in MatCompositeAddMat_Composite()
438 shell->scalings[shell->nmat - 1] = 1.0; in MatCompositeAddMat_Composite()
671 if (shell->scalings) PetscCall(MatScale(tmat, shell->scalings[i++])); in MatCompositeMerge_Composite()
672 …while ((next = next->next)) PetscCall(MatAXPY(tmat, shell->scalings ? shell->scalings[i++] : 1.0, … in MatCompositeMerge_Composite()
676 if (shell->scalings) PetscCall(MatScale(tmat, shell->scalings[i--])); in MatCompositeMerge_Composite()
677 …while ((prev = prev->prev)) PetscCall(MatAXPY(tmat, shell->scalings ? shell->scalings[i--] : 1.0, … in MatCompositeMerge_Composite()
695 if (shell->scalings) { in MatCompositeMerge_Composite()
696 for (i = 0; i < shell->nmat; i++) scale *= shell->scalings[i]; in MatCompositeMerge_Composite()
821 static PetscErrorCode MatCompositeSetScalings_Composite(Mat mat, const PetscScalar *scalings) in MatCompositeSetScalings_Composite() argument
829 if (!shell->scalings) PetscCall(PetscMalloc1(nmat, &shell->scalings)); in MatCompositeSetScalings_Composite()
830 PetscCall(PetscArraycpy(shell->scalings, scalings, nmat)); in MatCompositeSetScalings_Composite()
847 PetscErrorCode MatCompositeSetScalings(Mat mat, const PetscScalar *scalings) in MatCompositeSetScalings() argument
851 PetscAssertPointer(scalings, 2); in MatCompositeSetScalings()
852 PetscValidLogicalCollectiveScalar(mat, *scalings, 2); in MatCompositeSetScalings()
853 PetscUseMethod(mat, "MatCompositeSetScalings_C", (Mat, const PetscScalar *), (mat, scalings)); in MatCompositeSetScalings()