mat_vec_rel Function

private pure function mat_vec_rel(A, v, transA, option) result(w)

Arguments

Type IntentOptional Attributes Name
real(kind=rk), intent(in), contiguous :: A(:,:)
real(kind=rk), intent(in), contiguous :: v(:)
logical, intent(in), optional :: transA
character(len=*), intent(in), optional :: option

Return Value real(kind=rk), allocatable, (:)


Calls

proc~~mat_vec_rel~~CallsGraph proc~mat_vec_rel formatmul::mat_vec_rel proc~mat_vec_rel_atv formatmul::mat_vec_rel_ATv proc~mat_vec_rel->proc~mat_vec_rel_atv proc~mat_vec_rel_av formatmul::mat_vec_rel_Av proc~mat_vec_rel->proc~mat_vec_rel_av proc~mat_vec_rel_atv_opt formatmul_opts::mat_vec_rel_ATv_opt proc~mat_vec_rel_atv->proc~mat_vec_rel_atv_opt proc~mat_vec_rel_av_opt formatmul_opts::mat_vec_rel_Av_opt proc~mat_vec_rel_av->proc~mat_vec_rel_av_opt proc~mv_atv_1 formatmul_opts::mv_ATv_1 proc~mat_vec_rel_atv_opt->proc~mv_atv_1 proc~mv_atv_2 formatmul_opts::mv_ATv_2 proc~mat_vec_rel_atv_opt->proc~mv_atv_2 proc~mv_atv_3 formatmul_opts::mv_ATv_3 proc~mat_vec_rel_atv_opt->proc~mv_atv_3 proc~mv_atv_4 formatmul_opts::mv_ATv_4 proc~mat_vec_rel_atv_opt->proc~mv_atv_4 proc~mv_atv_5 formatmul_opts::mv_ATv_5 proc~mat_vec_rel_atv_opt->proc~mv_atv_5 proc~mv_atv_6 formatmul_opts::mv_ATv_6 proc~mat_vec_rel_atv_opt->proc~mv_atv_6 proc~mv_atv_7 formatmul_opts::mv_ATv_7 proc~mat_vec_rel_atv_opt->proc~mv_atv_7 proc~mv_atv_8 formatmul_opts::mv_ATv_8 proc~mat_vec_rel_atv_opt->proc~mv_atv_8 proc~mv_av_1 formatmul_opts::mv_Av_1 proc~mat_vec_rel_av_opt->proc~mv_av_1 proc~mv_av_2 formatmul_opts::mv_Av_2 proc~mat_vec_rel_av_opt->proc~mv_av_2 proc~mv_av_3 formatmul_opts::mv_Av_3 proc~mat_vec_rel_av_opt->proc~mv_av_3 proc~mv_av_4 formatmul_opts::mv_Av_4 proc~mat_vec_rel_av_opt->proc~mv_av_4 proc~mv_av_5 formatmul_opts::mv_Av_5 proc~mat_vec_rel_av_opt->proc~mv_av_5 proc~mv_av_6 formatmul_opts::mv_Av_6 proc~mat_vec_rel_av_opt->proc~mv_av_6 proc~mv_av_7 formatmul_opts::mv_Av_7 proc~mat_vec_rel_av_opt->proc~mv_av_7 proc~mv_av_8 formatmul_opts::mv_Av_8 proc~mat_vec_rel_av_opt->proc~mv_av_8 interface~gemv external_interfaces_matmul::gemv proc~mv_atv_2->interface~gemv proc~mv_av_2->interface~gemv

Called by

proc~~mat_vec_rel~~CalledByGraph proc~mat_vec_rel formatmul::mat_vec_rel interface~matmul formatmul::matmul interface~matmul->proc~mat_vec_rel

Source Code

   pure function mat_vec_rel(A, v, transA, option) result(w)
      real(rk), intent(in), contiguous :: A(:,:), v(:)
      real(rk), allocatable :: w(:)
      character(*), intent(in), optional :: option
      logical, intent(in), optional :: transA

      if (present(transA)) then
         if (transA) then
            ! ATv
            allocate(w(size(A,2)), source=0.0_rk)
            call mat_vec_rel_ATv(A, v , w, option)
         else if (.not. transA) then
            ! Av
            allocate(w(size(A,1)), source=0.0_rk)
            call mat_vec_rel_Av(A, v, w, option)
         end if
      else if (.not. present(transA)) then
         ! Av
         allocate(w(size(A,1)), source=0.0_rk)
         call mat_vec_rel_Av(A, v, w, option)
      end if

   end function mat_vec_rel