Home
last modified time | relevance | path

Searched refs:xinout (Results 1 – 1 of 1) sorted by relevance

/petsc/src/vec/vec/impls/seq/cupm/
H A Dvecseqcupm_impl.hpp231 inline PetscErrorCode VecSeq_CUPM<T>::PointwiseUnary_(UnaryFuncT &&unary, Vec xinout, Vec yin, Pets… in PointwiseUnary_() argument
233 const auto inplace = !yin || (xinout == yin); in PointwiseUnary_()
236 if (const auto n = xinout->map->n) { in PointwiseUnary_()
238 const auto apply = [&](PetscScalar *xinout, PetscScalar *yin = nullptr) { in PointwiseUnary_() argument
242 const auto xptr = thrust::device_pointer_cast(xinout); in PointwiseUnary_()
248 (yin && (yin != xinout)) ? thrust::device_pointer_cast(yin) : xptr, in PointwiseUnary_()
259 PetscCall(apply(DeviceArrayReadWrite(dctx, xinout).data())); in PointwiseUnary_()
261 PetscCall(apply(DeviceArrayRead(dctx, xinout).data(), DeviceArrayWrite(dctx, yin).data())); in PointwiseUnary_()
267 PetscCall(MaybeIncrementEmptyLocalVec(xinout)); in PointwiseUnary_()