hprod applies a Householder transformation stored in hz to get y = ( I - 2hzhz(transpose) ) * x.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer | :: | n | ||||
| real(kind=wp) | :: | hz(n) | ||||
| real(kind=wp) | :: | x(n) | ||||
| real(kind=wp) | :: | y(n) |
subroutine hprod ( n, hz, x, y ) integer :: n real(wp) :: hz(n), x(n), y(n) integer :: i real(wp) :: s s = zero do i = 1, n s = hz(i) * x(i) + s end do s = s + s do i = 1, n y(i) = x(i) - s * hz(i) end do end subroutine hprod