mat_wdotci Function

public function mat_wdotci(n, xr, xi, incx, yr, yi, incy)

Arguments

Type IntentOptional Attributes Name
integer :: n
doubleprecision :: xr(*)
doubleprecision :: xi(*)
integer :: incx
doubleprecision :: yr(*)
doubleprecision :: yi(*)
integer :: incy

Return Value doubleprecision


Source Code

doubleprecision function mat_wdotci(n,xr,xi,incx,yr,yi,incy)
integer         :: n
doubleprecision :: xr(*)
doubleprecision :: xi(*)
integer         :: incx
doubleprecision :: yr(*)
doubleprecision :: yi(*)
integer         :: incy

integer         :: ix
integer         :: iy
integer         :: i
doubleprecision :: s

   s = 0.0d0

   if (n .gt. 0) then
      ix = 1
      iy = 1
      if (incx.lt.0) ix = (-n+1)*incx + 1
      if (incy.lt.0) iy = (-n+1)*incy + 1

      do i = 1, n
         s = s + xr(ix)*yi(iy) - xi(ix)*yr(iy)
         if (s .ne. 0.0d0) s = mat_flop(s)
         ix = ix + incx
         iy = iy + incy
      enddo

   endif

   mat_wdotci = s
end function mat_wdotci