| /petsc/src/ksp/ksp/utils/lmvm/blas_cyclic/cupm/ |
| H A D | blas_cyclic_cupm_impl.hpp | 35 auto y_ = cupmScalarPtrCast(y); in axpby_dispatch() local 41 PetscCallCUPMBLAS(cupmBlasXcopy(handle, n, x_, 1, y_, y_stride)); in axpby_dispatch() 43 if (beta != 1.0) PetscCallCUPMBLAS(cupmBlasXscal(handle, n, cbeta, y_, y_stride)); in axpby_dispatch() 44 if (alpha != 0.0) PetscCallCUPMBLAS(cupmBlasXaxpy(handle, n, calpha, x_, 1, y_, y_stride)); in axpby_dispatch() 95 const auto y_ = cupmScalarPtrCast(y); in dmv() local 110 PetscCallCUPMBLAS(cupmBlasXgbmv(handle, trans, m, m, 0, 0, calpha, A_, 1, x_, 1, cbeta, y_, 1)); in dmv() 114 …le, trans, diff, diff, 0, 0, calpha, &A_[i_oldest], 1, &x_[i_oldest], 1, cbeta, &y_[i_oldest], 1)); in dmv() 118 …llCUPMBLAS(cupmBlasXgbmv(handle, trans, i_next, i_next, 0, 0, calpha, A_, 1, x_, 1, cbeta, y_, 1)); in dmv() 119 …le, trans, diff, diff, 0, 0, calpha, &A_[i_oldest], 1, &x_[i_oldest], 1, cbeta, &y_[i_oldest], 1)); in dmv() 137 const auto y_ = cupmScalarPtrCast(y); in dsv() local [all …]
|
| /petsc/src/ksp/ksp/utils/lmvm/blas_cyclic/ |
| H A D | blas_cyclic.c | 41 PetscScalar *y_; in VecAXPBYCyclic() local 58 PetscCall(VecGetArrayAndMemType(y, &y_, &y_memtype)); in VecAXPBYCyclic() 61 if (m_local == m) PetscCall(AXPBYCyclic_CUPM_Private(m, oldest, next, alpha, x_, beta, y_, 1)); in VecAXPBYCyclic() 67 PetscCall(VecRestoreArrayAndMemType(y, &y_)); in VecAXPBYCyclic() 70 PetscCall(VecGetArray(y, &y_)); in VecAXPBYCyclic() 71 PetscCall(AXPBYCylic_Private(m, oldest, next, alpha, x_, beta, y_, 1)); in VecAXPBYCyclic() 72 PetscCall(VecRestoreArray(y, &y_)); in VecAXPBYCyclic() 109 PetscScalar *y_; in VecDMVCyclic() local 131 PetscCall(VecGetArrayAndMemType(y, &y_, &y_memtype)); in VecDMVCyclic() 134 …) PetscCall(DMVCyclic_CUPM_Private(hermitian_transpose, m, oldest, next, alpha, A_, x_, beta, y_)); in VecDMVCyclic() [all …]
|
| /petsc/src/ksp/ksp/utils/lmvm/tests/ |
| H A D | lmvm_copy_test.c | 77 Vec x_, y_, z_; in testUnchangedBegin() local 80 PetscCall(MatCreateVecs(A, &x_, &y_)); in testUnchangedBegin() 83 PetscCall(MatMult(A, x_, y_)); in testUnchangedBegin() 86 *y = y_; in testUnchangedBegin() 93 Vec x_, y_, z_, y2_, z2_; in testUnchangedEnd() local 98 y_ = *y; in testUnchangedEnd() 107 PetscCall(VecEqual(y_, y2_, unchanged)); in testUnchangedEnd() 112 PetscCall(VecDestroy(&y_)); in testUnchangedEnd()
|
| /petsc/src/ksp/ksp/utils/lmvm/ |
| H A D | lmbasis.c | 303 Vec y_ = y; in LMBasisGEMVH() local 321 if (alpha != 1.0 || (beta != 1.0 && beta != 0.0)) PetscCall(LMBasisGetWorkRow(A, &y_)); in LMBasisGEMVH() 324 if (alpha == 1.0 && beta == 1.0) PetscCall(MatMultHermitianTransposeAdd(A->vecs, x, y_, y_)); in LMBasisGEMVH() 325 else PetscCall(MatMultHermitianTranspose(A->vecs, x, y_)); in LMBasisGEMVH() 328 …ta == 1.0) PetscCall(MatMultHermitianTransposeAddColumnRange(A->vecs, x, y_, y_, oldest_idx, next_… in LMBasisGEMVH() 329 else PetscCall(MatMultHermitianTransposeColumnRange(A->vecs, x, y_, oldest_idx, next_idx)); in LMBasisGEMVH() 332 PetscCall(MatMultHermitianTransposeAddColumnRange(A->vecs, x, y_, y_, 0, next_idx)); in LMBasisGEMVH() 333 PetscCall(MatMultHermitianTransposeAddColumnRange(A->vecs, x, y_, y_, oldest_idx, A->m)); in LMBasisGEMVH() 335 PetscCall(MatMultHermitianTransposeColumnRange(A->vecs, x, y_, 0, next_idx)); in LMBasisGEMVH() 336 PetscCall(MatMultHermitianTransposeColumnRange(A->vecs, x, y_, oldest_idx, A->m)); in LMBasisGEMVH() [all …]
|
| /petsc/doc/manual/ |
| H A D | tao.md | 2309 y_{k+\frac{1}{2}} = A_k^{-T}c_{k+\frac{1}{2}} 2315 \tilde{g}_{k+\frac{1}{2}} = d_{k+\frac{1}{2}} + y_{k+\frac{1}{2}}^T B_k. 2355 y_{k+1} & = & A_k^{-T}c_{k+1} \\ 2356 \tilde{g}_{k+1} & = & d_{k+1} - y_{k+1}^T B_k, 2362 multipliers $y_{k+1}$ become the multipliers used in the next 2547 on a common interpolation set $\{y_1, \cdots , y_{l_k}\}$ of size
|
| H A D | ts.md | 734 for $r = 2$. We have $y_\text{aux} = 736 $y_\text{aux}$ is the 2nd component of the working vector
|
| H A D | vec.md | 681 …| ``VecPointwiseMult(Vec w, Vec x, Vec y);`` | :math:`w_{i} = x_{i}*y_{i}` … 683 …| ``VecPointwiseDivide(Vec w, Vec x, Vec y);`` | :math:`w_{i} = x_{i}/y_{i}` …
|