Actual source code: matdiagonalhip.hip.cxx
1: #include <petsc/private/matimpl.h>
3: #include "../matdiagonalcupm.hpp"
4: #include "../src/vec/vec/impls/seq/cupm/vecseqcupm.hpp"
5: #include "../src/vec/vec/impls/seq/cupm/vecseqcupm_impl.hpp"
7: using namespace Petsc::device::cupm;
8: using Petsc::device::cupm::DeviceType;
10: static constexpr impl::MatDiagonal_CUPM<DeviceType::HIP, Petsc::vec::cupm::impl::VecSeq_CUPM<DeviceType::HIP>> cupm_mat{};
12: PETSC_INTERN PetscErrorCode MatADot_Diagonal_SeqHIP(Mat A, Vec x, Vec y, PetscScalar *val)
13: {
14: PetscFunctionBegin;
15: PetscCall(cupm_mat.ADot(A, x, y, val));
16: PetscFunctionReturn(PETSC_SUCCESS);
17: }
19: PETSC_INTERN PetscErrorCode MatANormSq_Diagonal_SeqHIP(Mat A, Vec x, PetscReal *val)
20: {
21: PetscFunctionBegin;
22: PetscCall(cupm_mat.ANormSq(A, x, val));
23: PetscFunctionReturn(PETSC_SUCCESS);
24: }