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: }