private function s_spline_matrix_banded__matvec_prod(self, v_in) result(v_out)
Type Bound
sll_t_spline_matrix_banded
Arguments
Return Value
real(kind=wp), (size(v_in))
Source Code
function s_spline_matrix_banded__matvec_prod( self, v_in) result(v_out )
class(sll_t_spline_matrix_banded), intent(in) :: self
real(wp) , intent(in) :: v_in(:)
real(wp) :: v_out(size(v_in))
integer :: j,imin,imax
SLL_ASSERT( size(v_in,1) == self%n )
SLL_ASSERT( .not.self%factorized )
DO j=1,self%n
imin=max(1,j-self%ku)
imax=min(self%n,j+self%kl)
v_out(j)=DOT_PRODUCT(self%q(self%kl+self%ku+1+imin-j:self%kl+self%ku+1+imax-j,j),v_in(imin:imax))
END DO
end function s_spline_matrix_banded__matvec_prod