Lines Matching refs:left

96   if (!shell->left) {  in MatShellPreScaleLeft()
99 if (!shell->left_work) PetscCall(VecDuplicate(shell->left, &shell->left_work)); in MatShellPreScaleLeft()
105 PetscCall(VecGetArrayRead(shell->left, &d)); in MatShellPreScaleLeft()
112 } else PetscCall(VecPointwiseMult(shell->left_work, x, shell->left)); in MatShellPreScaleLeft()
145 if (shell->left) PetscCall(VecPointwiseMult(x, x, shell->left)); in MatShellPostScaleLeft()
443 PetscCall(VecDestroy(&shell->left)); in MatDestroy_Shell()
528 if (shell->right || shell->left) { in MatProductNumeric_Shell_X()
542 if (shell->left) PetscCall(MatDiagonalScale(mdata->B, shell->left, NULL)); in MatProductNumeric_Shell_X()
548 if (shell->right && shell->left) { in MatProductNumeric_Shell_X()
551 PetscCall(VecEqual(shell->right, shell->left, &flg)); in MatProductNumeric_Shell_X()
558 if (shell->right && shell->left) { in MatProductNumeric_Shell_X()
561 PetscCall(VecEqual(shell->right, shell->left, &flg)); in MatProductNumeric_Shell_X()
589 if (shell->left) { in MatProductNumeric_Shell_X()
590 PetscCall(MatDiagonalScale(D, shell->left, NULL)); in MatProductNumeric_Shell_X()
596 PetscCall(VecPointwiseMult(shell->left_work, shell->left_work, shell->left)); in MatProductNumeric_Shell_X()
930 if (shellA->left) { in MatCopy_Shell()
931 if (!shellB->left) PetscCall(VecDuplicate(shellA->left, &shellB->left)); in MatCopy_Shell()
932 PetscCall(VecCopy(shellA->left, shellB->left)); in MatCopy_Shell()
934 PetscCall(VecDestroy(&shellB->left)); in MatCopy_Shell()
1152 if (shell->left) PetscCall(VecPointwiseMult(v, v, shell->left)); in MatGetDiagonal_Shell()
1175 Vec left = NULL, right = NULL; in MatGetDiagonalBlock_Shell() local
1185 if (shell->left) { in MatGetDiagonalBlock_Shell()
1186 PetscCall(VecCreateLocalVector(shell->left, &left)); in MatGetDiagonalBlock_Shell()
1187 PetscCall(VecGetLocalVectorRead(shell->left, left)); in MatGetDiagonalBlock_Shell()
1193 PetscCall(MatDiagonalScale(*b, left, right)); in MatGetDiagonalBlock_Shell()
1194 if (shell->left) { in MatGetDiagonalBlock_Shell()
1195 PetscCall(VecRestoreLocalVectorRead(shell->left, left)); in MatGetDiagonalBlock_Shell()
1196 PetscCall(VecDestroy(&left)); in MatGetDiagonalBlock_Shell()
1213 if (shell->left || shell->right) { in MatShift_Shell()
1215 PetscCall(VecDuplicate(shell->left ? shell->left : shell->right, &shell->dshift)); in MatShift_Shell()
1218 if (shell->left) PetscCall(VecPointwiseMult(shell->dshift, shell->dshift, shell->left)); in MatShift_Shell()
1222 if (shell->left) PetscCall(VecPointwiseDivide(shell->dshift, shell->dshift, shell->left)); in MatShift_Shell()
1235 if (shell->left || shell->right) { in MatDiagonalSet_Shell_Private()
1236 …if (!shell->right_work) PetscCall(VecDuplicate(shell->left ? shell->left : shell->right, &shell->r… in MatDiagonalSet_Shell_Private()
1237 if (shell->left && shell->right) { in MatDiagonalSet_Shell_Private()
1238 PetscCall(VecPointwiseDivide(shell->right_work, D, shell->left)); in MatDiagonalSet_Shell_Private()
1240 } else if (shell->left) { in MatDiagonalSet_Shell_Private()
1241 PetscCall(VecPointwiseDivide(shell->right_work, D, shell->left)); in MatDiagonalSet_Shell_Private()
1288 static PetscErrorCode MatDiagonalScale_Shell(Mat Y, Vec left, Vec right) in MatDiagonalScale_Shell() argument
1293 if (left) { in MatDiagonalScale_Shell()
1294 if (!shell->left) { in MatDiagonalScale_Shell()
1295 PetscCall(VecDuplicate(left, &shell->left)); in MatDiagonalScale_Shell()
1296 PetscCall(VecCopy(left, shell->left)); in MatDiagonalScale_Shell()
1298 PetscCall(VecPointwiseMult(shell->left, shell->left, left)); in MatDiagonalScale_Shell()
1300 if (shell->zrows) PetscCall(VecPointwiseMult(shell->zvals, shell->zvals, left)); in MatDiagonalScale_Shell()
1317 if (shell->axpy) PetscCall(MatDiagonalScale(shell->axpy, left, right)); in MatDiagonalScale_Shell()
1332 PetscCall(VecDestroy(&shell->left)); in MatAssemblyEnd_Shell()
1580 …_Shell(Mat A, PetscScalar *vshift, PetscScalar *vscale, Vec *dshift, Vec *left, Vec *right, Mat *a… in MatShellGetScalingShifts_Shell() argument
1592 …if (left == MAT_SHELL_NOT_ALLOWED) PetscCheck(!shell->left, PetscObjectComm((PetscObject)A), PETSC… in MatShellGetScalingShifts_Shell()
1593 else if (left) *left = shell->left; in MatShellGetScalingShifts_Shell()
2011 …Shifts(Mat A, PetscScalar *vshift, PetscScalar *vscale, Vec *dshift, Vec *left, Vec *right, Mat *a… in MatShellGetScalingShifts() argument
2015 …r *, Vec *, Vec *, Vec *, Mat *, IS *, IS *), (A, vshift, vscale, dshift, left, right, axpy, zrows… in MatShellGetScalingShifts()