From 2a75d677d05da6616103c86e3ba769de16159d34 Mon Sep 17 00:00:00 2001 From: Salvatore Filippone Date: Tue, 20 Feb 2024 13:04:40 +0100 Subject: [PATCH] ABGDXYZ in vectordev_mod --- cuda/psb_c_vectordev_mod.F90 | 13 ++++++++++++- cuda/psb_d_vectordev_mod.F90 | 13 ++++++++++++- cuda/psb_s_vectordev_mod.F90 | 13 ++++++++++++- cuda/psb_z_vectordev_mod.F90 | 13 ++++++++++++- 4 files changed, 48 insertions(+), 4 deletions(-) diff --git a/cuda/psb_c_vectordev_mod.F90 b/cuda/psb_c_vectordev_mod.F90 index b15b2371..88888f61 100644 --- a/cuda/psb_c_vectordev_mod.F90 +++ b/cuda/psb_c_vectordev_mod.F90 @@ -304,7 +304,6 @@ module psb_c_vectordev_mod end function asumMultiVecDeviceFloatComplex end interface - interface axpbyMultiVecDevice function axpbyMultiVecDeviceFloatComplex(n,alpha,deviceVecA,beta,deviceVecB) & & result(res) bind(c,name='axpbyMultiVecDeviceFloatComplex') @@ -316,6 +315,18 @@ module psb_c_vectordev_mod end function axpbyMultiVecDeviceFloatComplex end interface + interface abgdxyzMultiVecDevice + function abgdxyzMultiVecDeviceFloatComplex(n,alpha,beta,gamma,delta,deviceVecX,& + & deviceVecY,deviceVecZ) & + & result(res) bind(c,name='abgdxyzMultiVecDeviceFloatComplex') + use iso_c_binding + integer(c_int) :: res + integer(c_int), value :: n + type(c_float_complex), value :: alpha, beta,gamma,delta + type(c_ptr), value :: deviceVecX, deviceVecY, deviceVecZ + end function abgdxyzMultiVecDeviceFloatComplex + end interface + interface axyMultiVecDevice function axyMultiVecDeviceFloatComplex(n,alpha,deviceVecA,deviceVecB) & & result(res) bind(c,name='axyMultiVecDeviceFloatComplex') diff --git a/cuda/psb_d_vectordev_mod.F90 b/cuda/psb_d_vectordev_mod.F90 index 802add96..176e8a6e 100644 --- a/cuda/psb_d_vectordev_mod.F90 +++ b/cuda/psb_d_vectordev_mod.F90 @@ -304,7 +304,6 @@ module psb_d_vectordev_mod end function asumMultiVecDeviceDouble end interface - interface axpbyMultiVecDevice function axpbyMultiVecDeviceDouble(n,alpha,deviceVecA,beta,deviceVecB) & & result(res) bind(c,name='axpbyMultiVecDeviceDouble') @@ -316,6 +315,18 @@ module psb_d_vectordev_mod end function axpbyMultiVecDeviceDouble end interface + interface abgdxyzMultiVecDevice + function abgdxyzMultiVecDeviceDouble(n,alpha,beta,gamma,delta,deviceVecX,& + & deviceVecY,deviceVecZ) & + & result(res) bind(c,name='abgdxyzMultiVecDeviceDouble') + use iso_c_binding + integer(c_int) :: res + integer(c_int), value :: n + type(c_double), value :: alpha, beta,gamma,delta + type(c_ptr), value :: deviceVecX, deviceVecY, deviceVecZ + end function abgdxyzMultiVecDeviceDouble + end interface + interface axyMultiVecDevice function axyMultiVecDeviceDouble(n,alpha,deviceVecA,deviceVecB) & & result(res) bind(c,name='axyMultiVecDeviceDouble') diff --git a/cuda/psb_s_vectordev_mod.F90 b/cuda/psb_s_vectordev_mod.F90 index 3ecabe70..73bb7445 100644 --- a/cuda/psb_s_vectordev_mod.F90 +++ b/cuda/psb_s_vectordev_mod.F90 @@ -304,7 +304,6 @@ module psb_s_vectordev_mod end function asumMultiVecDeviceFloat end interface - interface axpbyMultiVecDevice function axpbyMultiVecDeviceFloat(n,alpha,deviceVecA,beta,deviceVecB) & & result(res) bind(c,name='axpbyMultiVecDeviceFloat') @@ -316,6 +315,18 @@ module psb_s_vectordev_mod end function axpbyMultiVecDeviceFloat end interface + interface abgdxyzMultiVecDevice + function abgdxyzMultiVecDeviceFloat(n,alpha,beta,gamma,delta,deviceVecX,& + & deviceVecY,deviceVecZ) & + & result(res) bind(c,name='abgdxyzMultiVecDeviceFloat') + use iso_c_binding + integer(c_int) :: res + integer(c_int), value :: n + type(c_float), value :: alpha, beta,gamma,delta + type(c_ptr), value :: deviceVecX, deviceVecY, deviceVecZ + end function abgdxyzMultiVecDeviceFloat + end interface + interface axyMultiVecDevice function axyMultiVecDeviceFloat(n,alpha,deviceVecA,deviceVecB) & & result(res) bind(c,name='axyMultiVecDeviceFloat') diff --git a/cuda/psb_z_vectordev_mod.F90 b/cuda/psb_z_vectordev_mod.F90 index 8f07cd56..fa858acc 100644 --- a/cuda/psb_z_vectordev_mod.F90 +++ b/cuda/psb_z_vectordev_mod.F90 @@ -304,7 +304,6 @@ module psb_z_vectordev_mod end function asumMultiVecDeviceDoubleComplex end interface - interface axpbyMultiVecDevice function axpbyMultiVecDeviceDoubleComplex(n,alpha,deviceVecA,beta,deviceVecB) & & result(res) bind(c,name='axpbyMultiVecDeviceDoubleComplex') @@ -316,6 +315,18 @@ module psb_z_vectordev_mod end function axpbyMultiVecDeviceDoubleComplex end interface + interface abgdxyzMultiVecDevice + function abgdxyzMultiVecDeviceDoubleComplex(n,alpha,beta,gamma,delta,deviceVecX,& + & deviceVecY,deviceVecZ) & + & result(res) bind(c,name='abgdxyzMultiVecDeviceDoubleComplex') + use iso_c_binding + integer(c_int) :: res + integer(c_int), value :: n + type(c_double_complex), value :: alpha, beta,gamma,delta + type(c_ptr), value :: deviceVecX, deviceVecY, deviceVecZ + end function abgdxyzMultiVecDeviceDoubleComplex + end interface + interface axyMultiVecDevice function axyMultiVecDeviceDoubleComplex(n,alpha,deviceVecA,deviceVecB) & & result(res) bind(c,name='axyMultiVecDeviceDoubleComplex')