r1mpyq Subroutine

private subroutine r1mpyq(m, n, a, lda, v, w)

computes A*Q, where Q is the product of Householder transformations

Given an M by N matrix A, this function computes AQ where Q is the product of 2(N - 1) transformations

 GV(N-1)*...*GV(1)*GW(1)*...*GW(N-1)

and GV(I), GW(I) are Givens rotations in the (I,N) plane which eliminate elements in the I-th and N-th planes, respectively. Q itself is not given, rather the information to recover the GV, GW rotations is supplied.

Arguments

Type IntentOptional Attributes Name
integer :: m

In - number of rows of A

integer :: n

In - number of columns of A

real(kind=dp) :: a(lda,n)

In/Out - the M by N array. On input, the matrix A to be postmultiplied by the orthogonal matrix Q. On output, the value of A*Q.

integer :: lda

In - leading dimension of A, which must not be less than M.

real(kind=dp) :: v(n)

In - contain the information necessary to recover the Givens rotations GV

real(kind=dp) :: w(n)

In - contain the information necessary to recover the Givens rotations GW


Called by

proc~~r1mpyq~~CalledByGraph proc~r1mpyq r1mpyq proc~hybrd hybrd proc~hybrd->proc~r1mpyq proc~fsolve fsolve proc~fsolve->proc~hybrd proc~solve_junction solve_junction proc~solve_junction->proc~fsolve proc~junction_resolution_from_and_to_ports Junction_resolution_from_and_to_ports proc~junction_resolution_from_and_to_ports->proc~solve_junction proc~main_loop main_loop proc~main_loop->proc~junction_resolution_from_and_to_ports program~reims_p reims_p program~reims_p->proc~main_loop