Lines Matching refs:work
8 Vec diag, work; member
41 PetscScalar *a, *u, *v, *d, *work; in PCSetUp_SVD() local
59 PetscCall(MatCreateVecs(jac->A, &jac->diag, &jac->work)); in PCSetUp_SVD()
70 PetscCall(PetscMalloc1(lwork, &work)); in PCSetUp_SVD()
79 …PetscCallBLAS("LAPACKgesvd", LAPACKgesvd_("A", "A", &nb, &nb, a, &nb, d, u, &nb, v, &nb, work, &lw… in PCSetUp_SVD()
90 …PetscCallBLAS("LAPACKgesvd", LAPACKgesvd_("A", "A", &nb, &nb, a, &nb, dd, u, &nb, v, &nb, work, &l… in PCSetUp_SVD()
130 PetscCall(PetscFree(work)); in PCSetUp_SVD()
213 Vec work = jac->work, xred, yred; in PCApply_SVD() local
219 PetscCall(MatMultTranspose(jac->U, xred, work)); in PCApply_SVD()
221 PetscCall(MatMultHermitianTranspose(jac->U, xred, work)); in PCApply_SVD()
223 PetscCall(VecPointwiseMult(work, work, jac->diag)); in PCApply_SVD()
225 PetscCall(MatMultTranspose(jac->Vt, work, yred)); in PCApply_SVD()
227 PetscCall(MatMultHermitianTranspose(jac->Vt, work, yred)); in PCApply_SVD()
250 Vec work = jac->work, xred, yred; in PCApplyTranspose_SVD() local
255 PetscCall(MatMult(jac->Vt, xred, work)); in PCApplyTranspose_SVD()
256 PetscCall(VecPointwiseMult(work, work, jac->diag)); in PCApplyTranspose_SVD()
257 PetscCall(MatMult(jac->U, work, yred)); in PCApplyTranspose_SVD()
272 PetscCall(VecDestroy(&jac->work)); in PCReset_SVD()