mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-18 11:52:11 +00:00
psblas3
base/modules/psb_c_base_vect_mod.f90 base/modules/psb_c_vect_mod.F90 base/modules/psb_d_base_vect_mod.f90 base/modules/psb_d_vect_mod.F90 base/modules/psb_s_base_vect_mod.f90 base/modules/psb_s_vect_mod.F90 base/modules/psb_z_base_vect_mod.f90 base/modules/psb_z_vect_mod.F90 Added absval method.
This commit is contained in:
@@ -135,6 +135,7 @@ module psb_c_base_vect_mod
|
||||
! Scaling and norms
|
||||
!
|
||||
procedure, pass(x) :: scal => c_base_scal
|
||||
procedure, pass(x) :: absval => c_base_absval
|
||||
procedure, pass(x) :: nrm2 => c_base_nrm2
|
||||
procedure, pass(x) :: amax => c_base_amax
|
||||
procedure, pass(x) :: asum => c_base_asum
|
||||
@@ -640,6 +641,22 @@ contains
|
||||
|
||||
end subroutine c_base_set_scal
|
||||
|
||||
!
|
||||
! Overwrite with absolute value
|
||||
!
|
||||
!
|
||||
!> Function base_set_scal
|
||||
!! \memberof psb_c_base_vect_type
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine c_base_absval(x)
|
||||
class(psb_c_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& x%v = abs(x%v)
|
||||
|
||||
end subroutine c_base_absval
|
||||
|
||||
!
|
||||
!> Function base_set_vect
|
||||
!! \memberof psb_c_base_vect_type
|
||||
|
||||
@@ -63,6 +63,7 @@ module psb_c_vect_mod
|
||||
generic, public :: mlt => mlt_v, mlt_a, mlt_a_2,&
|
||||
& mlt_v_2, mlt_av, mlt_va
|
||||
procedure, pass(x) :: scal => c_vect_scal
|
||||
procedure, pass(x) :: absval => c_vect_absval
|
||||
procedure, pass(x) :: nrm2 => c_vect_nrm2
|
||||
procedure, pass(x) :: amax => c_vect_amax
|
||||
procedure, pass(x) :: asum => c_vect_asum
|
||||
@@ -457,6 +458,13 @@ contains
|
||||
|
||||
end subroutine c_vect_scal
|
||||
|
||||
subroutine c_vect_absval(x)
|
||||
class(psb_c_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& call x%v%absval()
|
||||
|
||||
end subroutine c_vect_absval
|
||||
|
||||
function c_vect_nrm2(n,x) result(res)
|
||||
implicit none
|
||||
|
||||
@@ -135,6 +135,7 @@ module psb_d_base_vect_mod
|
||||
! Scaling and norms
|
||||
!
|
||||
procedure, pass(x) :: scal => d_base_scal
|
||||
procedure, pass(x) :: absval => d_base_absval
|
||||
procedure, pass(x) :: nrm2 => d_base_nrm2
|
||||
procedure, pass(x) :: amax => d_base_amax
|
||||
procedure, pass(x) :: asum => d_base_asum
|
||||
@@ -640,6 +641,22 @@ contains
|
||||
|
||||
end subroutine d_base_set_scal
|
||||
|
||||
!
|
||||
! Overwrite with absolute value
|
||||
!
|
||||
!
|
||||
!> Function base_set_scal
|
||||
!! \memberof psb_d_base_vect_type
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine d_base_absval(x)
|
||||
class(psb_d_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& x%v = abs(x%v)
|
||||
|
||||
end subroutine d_base_absval
|
||||
|
||||
!
|
||||
!> Function base_set_vect
|
||||
!! \memberof psb_d_base_vect_type
|
||||
|
||||
@@ -63,6 +63,7 @@ module psb_d_vect_mod
|
||||
generic, public :: mlt => mlt_v, mlt_a, mlt_a_2,&
|
||||
& mlt_v_2, mlt_av, mlt_va
|
||||
procedure, pass(x) :: scal => d_vect_scal
|
||||
procedure, pass(x) :: absval => d_vect_absval
|
||||
procedure, pass(x) :: nrm2 => d_vect_nrm2
|
||||
procedure, pass(x) :: amax => d_vect_amax
|
||||
procedure, pass(x) :: asum => d_vect_asum
|
||||
@@ -457,6 +458,13 @@ contains
|
||||
|
||||
end subroutine d_vect_scal
|
||||
|
||||
subroutine d_vect_absval(x)
|
||||
class(psb_d_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& call x%v%absval()
|
||||
|
||||
end subroutine d_vect_absval
|
||||
|
||||
function d_vect_nrm2(n,x) result(res)
|
||||
implicit none
|
||||
|
||||
@@ -135,6 +135,7 @@ module psb_s_base_vect_mod
|
||||
! Scaling and norms
|
||||
!
|
||||
procedure, pass(x) :: scal => s_base_scal
|
||||
procedure, pass(x) :: absval => s_base_absval
|
||||
procedure, pass(x) :: nrm2 => s_base_nrm2
|
||||
procedure, pass(x) :: amax => s_base_amax
|
||||
procedure, pass(x) :: asum => s_base_asum
|
||||
@@ -640,6 +641,22 @@ contains
|
||||
|
||||
end subroutine s_base_set_scal
|
||||
|
||||
!
|
||||
! Overwrite with absolute value
|
||||
!
|
||||
!
|
||||
!> Function base_set_scal
|
||||
!! \memberof psb_s_base_vect_type
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine s_base_absval(x)
|
||||
class(psb_s_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& x%v = abs(x%v)
|
||||
|
||||
end subroutine s_base_absval
|
||||
|
||||
!
|
||||
!> Function base_set_vect
|
||||
!! \memberof psb_s_base_vect_type
|
||||
|
||||
@@ -63,6 +63,7 @@ module psb_s_vect_mod
|
||||
generic, public :: mlt => mlt_v, mlt_a, mlt_a_2,&
|
||||
& mlt_v_2, mlt_av, mlt_va
|
||||
procedure, pass(x) :: scal => s_vect_scal
|
||||
procedure, pass(x) :: absval => s_vect_absval
|
||||
procedure, pass(x) :: nrm2 => s_vect_nrm2
|
||||
procedure, pass(x) :: amax => s_vect_amax
|
||||
procedure, pass(x) :: asum => s_vect_asum
|
||||
@@ -457,6 +458,13 @@ contains
|
||||
|
||||
end subroutine s_vect_scal
|
||||
|
||||
subroutine s_vect_absval(x)
|
||||
class(psb_s_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& call x%v%absval()
|
||||
|
||||
end subroutine s_vect_absval
|
||||
|
||||
function s_vect_nrm2(n,x) result(res)
|
||||
implicit none
|
||||
|
||||
@@ -135,6 +135,7 @@ module psb_z_base_vect_mod
|
||||
! Scaling and norms
|
||||
!
|
||||
procedure, pass(x) :: scal => z_base_scal
|
||||
procedure, pass(x) :: absval => z_base_absval
|
||||
procedure, pass(x) :: nrm2 => z_base_nrm2
|
||||
procedure, pass(x) :: amax => z_base_amax
|
||||
procedure, pass(x) :: asum => z_base_asum
|
||||
@@ -640,6 +641,22 @@ contains
|
||||
|
||||
end subroutine z_base_set_scal
|
||||
|
||||
!
|
||||
! Overwrite with absolute value
|
||||
!
|
||||
!
|
||||
!> Function base_set_scal
|
||||
!! \memberof psb_z_base_vect_type
|
||||
!! \brief Set all entries to their respective absolute values.
|
||||
!!
|
||||
subroutine z_base_absval(x)
|
||||
class(psb_z_base_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& x%v = abs(x%v)
|
||||
|
||||
end subroutine z_base_absval
|
||||
|
||||
!
|
||||
!> Function base_set_vect
|
||||
!! \memberof psb_z_base_vect_type
|
||||
|
||||
@@ -63,6 +63,7 @@ module psb_z_vect_mod
|
||||
generic, public :: mlt => mlt_v, mlt_a, mlt_a_2,&
|
||||
& mlt_v_2, mlt_av, mlt_va
|
||||
procedure, pass(x) :: scal => z_vect_scal
|
||||
procedure, pass(x) :: absval => z_vect_absval
|
||||
procedure, pass(x) :: nrm2 => z_vect_nrm2
|
||||
procedure, pass(x) :: amax => z_vect_amax
|
||||
procedure, pass(x) :: asum => z_vect_asum
|
||||
@@ -457,6 +458,13 @@ contains
|
||||
|
||||
end subroutine z_vect_scal
|
||||
|
||||
subroutine z_vect_absval(x)
|
||||
class(psb_z_vect_type), intent(inout) :: x
|
||||
|
||||
if (allocated(x%v)) &
|
||||
& call x%v%absval()
|
||||
|
||||
end subroutine z_vect_absval
|
||||
|
||||
function z_vect_nrm2(n,x) result(res)
|
||||
implicit none
|
||||
|
||||
Reference in New Issue
Block a user