#:include "common.fypp" submodule(stdlib_lapack_base) stdlib_lapack_householder_reflectors implicit none contains #:for ik,it,ii in LINALG_INT_KINDS_TYPES pure module subroutine stdlib${ii}$_slarf( side, m, n, v, incv, tau, c, ldc, work ) !! SLARF applies a real elementary reflector H to a real m by n matrix !! C, from either the left or the right. H is represented in the form !! H = I - tau * v * v**T !! where tau is a real scalar and v is a real vector. !! If tau = 0, then H is taken to be the unit matrix. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_sp, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: incv, ldc, m, n real(sp), intent(in) :: tau ! Array Arguments real(sp), intent(inout) :: c(ldc,*) real(sp), intent(in) :: v(*) real(sp), intent(out) :: work(*) ! ===================================================================== ! Local Scalars logical(lk) :: applyleft integer(${ik}$) :: i, lastv, lastc ! Executable Statements applyleft = stdlib_lsame( side, 'L' ) lastv = 0_${ik}$ lastc = 0_${ik}$ if( tau/=zero ) then ! set up variables for scanning v. lastv begins pointing to the end ! of v. if( applyleft ) then lastv = m else lastv = n end if if( incv>0_${ik}$ ) then i = 1_${ik}$ + (lastv-1) * incv else i = 1_${ik}$ end if ! look for the last non-zero row in v. do while( lastv>0 .and. v( i )==zero ) lastv = lastv - 1_${ik}$ i = i - incv end do if( applyleft ) then ! scan for the last non-zero column in c(1:lastv,:). lastc = stdlib${ii}$_ilaslc(lastv, n, c, ldc) else ! scan for the last non-zero row in c(:,1:lastv). lastc = stdlib${ii}$_ilaslr(m, lastv, c, ldc) end if end if ! note that lastc.eq.0_sp renders the blas operations null; no special ! case is needed at this level. if( applyleft ) then ! form h * c if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastv,1:lastc)**t * v(1:lastv,1) call stdlib${ii}$_sgemv( 'TRANSPOSE', lastv, lastc, one, c, ldc, v, incv,zero, work, 1_${ik}$ & ) ! c(1:lastv,1:lastc) := c(...) - v(1:lastv,1) * w(1:lastc,1)**t call stdlib${ii}$_sger( lastv, lastc, -tau, v, incv, work, 1_${ik}$, c, ldc ) end if else ! form c * h if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastc,1:lastv) * v(1:lastv,1) call stdlib${ii}$_sgemv( 'NO TRANSPOSE', lastc, lastv, one, c, ldc,v, incv, zero, work,& 1_${ik}$ ) ! c(1:lastc,1:lastv) := c(...) - w(1:lastc,1) * v(1:lastv,1)**t call stdlib${ii}$_sger( lastc, lastv, -tau, work, 1_${ik}$, v, incv, c, ldc ) end if end if return end subroutine stdlib${ii}$_slarf pure module subroutine stdlib${ii}$_dlarf( side, m, n, v, incv, tau, c, ldc, work ) !! DLARF applies a real elementary reflector H to a real m by n matrix !! C, from either the left or the right. H is represented in the form !! H = I - tau * v * v**T !! where tau is a real scalar and v is a real vector. !! If tau = 0, then H is taken to be the unit matrix. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_dp, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: incv, ldc, m, n real(dp), intent(in) :: tau ! Array Arguments real(dp), intent(inout) :: c(ldc,*) real(dp), intent(in) :: v(*) real(dp), intent(out) :: work(*) ! ===================================================================== ! Local Scalars logical(lk) :: applyleft integer(${ik}$) :: i, lastv, lastc ! Executable Statements applyleft = stdlib_lsame( side, 'L' ) lastv = 0_${ik}$ lastc = 0_${ik}$ if( tau/=zero ) then ! set up variables for scanning v. lastv begins pointing to the end ! of v. if( applyleft ) then lastv = m else lastv = n end if if( incv>0_${ik}$ ) then i = 1_${ik}$ + (lastv-1) * incv else i = 1_${ik}$ end if ! look for the last non-zero row in v. do while( lastv>0 .and. v( i )==zero ) lastv = lastv - 1_${ik}$ i = i - incv end do if( applyleft ) then ! scan for the last non-zero column in c(1:lastv,:). lastc = stdlib${ii}$_iladlc(lastv, n, c, ldc) else ! scan for the last non-zero row in c(:,1:lastv). lastc = stdlib${ii}$_iladlr(m, lastv, c, ldc) end if end if ! note that lastc.eq.0_dp renders the blas operations null; no special ! case is needed at this level. if( applyleft ) then ! form h * c if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastv,1:lastc)**t * v(1:lastv,1) call stdlib${ii}$_dgemv( 'TRANSPOSE', lastv, lastc, one, c, ldc, v, incv,zero, work, 1_${ik}$ & ) ! c(1:lastv,1:lastc) := c(...) - v(1:lastv,1) * w(1:lastc,1)**t call stdlib${ii}$_dger( lastv, lastc, -tau, v, incv, work, 1_${ik}$, c, ldc ) end if else ! form c * h if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastc,1:lastv) * v(1:lastv,1) call stdlib${ii}$_dgemv( 'NO TRANSPOSE', lastc, lastv, one, c, ldc,v, incv, zero, work,& 1_${ik}$ ) ! c(1:lastc,1:lastv) := c(...) - w(1:lastc,1) * v(1:lastv,1)**t call stdlib${ii}$_dger( lastc, lastv, -tau, work, 1_${ik}$, v, incv, c, ldc ) end if end if return end subroutine stdlib${ii}$_dlarf #:for rk,rt,ri in REAL_KINDS_TYPES #:if not rk in ["sp","dp"] pure module subroutine stdlib${ii}$_${ri}$larf( side, m, n, v, incv, tau, c, ldc, work ) !! DLARF: applies a real elementary reflector H to a real m by n matrix !! C, from either the left or the right. H is represented in the form !! H = I - tau * v * v**T !! where tau is a real scalar and v is a real vector. !! If tau = 0, then H is taken to be the unit matrix. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_${rk}$, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: incv, ldc, m, n real(${rk}$), intent(in) :: tau ! Array Arguments real(${rk}$), intent(inout) :: c(ldc,*) real(${rk}$), intent(in) :: v(*) real(${rk}$), intent(out) :: work(*) ! ===================================================================== ! Local Scalars logical(lk) :: applyleft integer(${ik}$) :: i, lastv, lastc ! Executable Statements applyleft = stdlib_lsame( side, 'L' ) lastv = 0_${ik}$ lastc = 0_${ik}$ if( tau/=zero ) then ! set up variables for scanning v. lastv begins pointing to the end ! of v. if( applyleft ) then lastv = m else lastv = n end if if( incv>0_${ik}$ ) then i = 1_${ik}$ + (lastv-1) * incv else i = 1_${ik}$ end if ! look for the last non-zero row in v. do while( lastv>0 .and. v( i )==zero ) lastv = lastv - 1_${ik}$ i = i - incv end do if( applyleft ) then ! scan for the last non-zero column in c(1:lastv,:). lastc = stdlib${ii}$_ila${ri}$lc(lastv, n, c, ldc) else ! scan for the last non-zero row in c(:,1:lastv). lastc = stdlib${ii}$_ila${ri}$lr(m, lastv, c, ldc) end if end if ! note that lastc.eq.0_${rk}$ renders the blas operations null; no special ! case is needed at this level. if( applyleft ) then ! form h * c if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastv,1:lastc)**t * v(1:lastv,1) call stdlib${ii}$_${ri}$gemv( 'TRANSPOSE', lastv, lastc, one, c, ldc, v, incv,zero, work, 1_${ik}$ & ) ! c(1:lastv,1:lastc) := c(...) - v(1:lastv,1) * w(1:lastc,1)**t call stdlib${ii}$_${ri}$ger( lastv, lastc, -tau, v, incv, work, 1_${ik}$, c, ldc ) end if else ! form c * h if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastc,1:lastv) * v(1:lastv,1) call stdlib${ii}$_${ri}$gemv( 'NO TRANSPOSE', lastc, lastv, one, c, ldc,v, incv, zero, work,& 1_${ik}$ ) ! c(1:lastc,1:lastv) := c(...) - w(1:lastc,1) * v(1:lastv,1)**t call stdlib${ii}$_${ri}$ger( lastc, lastv, -tau, work, 1_${ik}$, v, incv, c, ldc ) end if end if return end subroutine stdlib${ii}$_${ri}$larf #:endif #:endfor pure module subroutine stdlib${ii}$_clarf( side, m, n, v, incv, tau, c, ldc, work ) !! CLARF applies a complex elementary reflector H to a complex M-by-N !! matrix C, from either the left or the right. H is represented in the !! form !! H = I - tau * v * v**H !! where tau is a complex scalar and v is a complex vector. !! If tau = 0, then H is taken to be the unit matrix. !! To apply H**H (the conjugate transpose of H), supply conjg(tau) instead !! tau. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_sp, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: incv, ldc, m, n complex(sp), intent(in) :: tau ! Array Arguments complex(sp), intent(inout) :: c(ldc,*) complex(sp), intent(in) :: v(*) complex(sp), intent(out) :: work(*) ! ===================================================================== ! Local Scalars logical(lk) :: applyleft integer(${ik}$) :: i, lastv, lastc ! Executable Statements applyleft = stdlib_lsame( side, 'L' ) lastv = 0_${ik}$ lastc = 0_${ik}$ if( tau/=czero ) then ! set up variables for scanning v. lastv begins pointing to the end ! of v. if( applyleft ) then lastv = m else lastv = n end if if( incv>0_${ik}$ ) then i = 1_${ik}$ + (lastv-1) * incv else i = 1_${ik}$ end if ! look for the last non-czero row in v. do while( lastv>0 .and. v( i )==czero ) lastv = lastv - 1_${ik}$ i = i - incv end do if( applyleft ) then ! scan for the last non-czero column in c(1:lastv,:). lastc = stdlib${ii}$_ilaclc(lastv, n, c, ldc) else ! scan for the last non-czero row in c(:,1:lastv). lastc = stdlib${ii}$_ilaclr(m, lastv, c, ldc) end if end if ! note that lastc.eq.0_sp renders the blas operations null; no special ! case is needed at this level. if( applyleft ) then ! form h * c if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastv,1:lastc)**h * v(1:lastv,1) call stdlib${ii}$_cgemv( 'CONJUGATE TRANSPOSE', lastv, lastc, cone,c, ldc, v, incv, & czero, work, 1_${ik}$ ) ! c(1:lastv,1:lastc) := c(...) - v(1:lastv,1) * w(1:lastc,1)**h call stdlib${ii}$_cgerc( lastv, lastc, -tau, v, incv, work, 1_${ik}$, c, ldc ) end if else ! form c * h if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastc,1:lastv) * v(1:lastv,1) call stdlib${ii}$_cgemv( 'NO TRANSPOSE', lastc, lastv, cone, c, ldc,v, incv, czero, & work, 1_${ik}$ ) ! c(1:lastc,1:lastv) := c(...) - w(1:lastc,1) * v(1:lastv,1)**h call stdlib${ii}$_cgerc( lastc, lastv, -tau, work, 1_${ik}$, v, incv, c, ldc ) end if end if return end subroutine stdlib${ii}$_clarf pure module subroutine stdlib${ii}$_zlarf( side, m, n, v, incv, tau, c, ldc, work ) !! ZLARF applies a complex elementary reflector H to a complex M-by-N !! matrix C, from either the left or the right. H is represented in the !! form !! H = I - tau * v * v**H !! where tau is a complex scalar and v is a complex vector. !! If tau = 0, then H is taken to be the unit matrix. !! To apply H**H, supply conjg(tau) instead !! tau. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_dp, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: incv, ldc, m, n complex(dp), intent(in) :: tau ! Array Arguments complex(dp), intent(inout) :: c(ldc,*) complex(dp), intent(in) :: v(*) complex(dp), intent(out) :: work(*) ! ===================================================================== ! Local Scalars logical(lk) :: applyleft integer(${ik}$) :: i, lastv, lastc ! Executable Statements applyleft = stdlib_lsame( side, 'L' ) lastv = 0_${ik}$ lastc = 0_${ik}$ if( tau/=czero ) then ! set up variables for scanning v. lastv begins pointing to the end ! of v. if( applyleft ) then lastv = m else lastv = n end if if( incv>0_${ik}$ ) then i = 1_${ik}$ + (lastv-1) * incv else i = 1_${ik}$ end if ! look for the last non-czero row in v. do while( lastv>0 .and. v( i )==czero ) lastv = lastv - 1_${ik}$ i = i - incv end do if( applyleft ) then ! scan for the last non-czero column in c(1:lastv,:). lastc = stdlib${ii}$_ilazlc(lastv, n, c, ldc) else ! scan for the last non-czero row in c(:,1:lastv). lastc = stdlib${ii}$_ilazlr(m, lastv, c, ldc) end if end if ! note that lastc.eq.0_dp renders the blas operations null; no special ! case is needed at this level. if( applyleft ) then ! form h * c if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastv,1:lastc)**h * v(1:lastv,1) call stdlib${ii}$_zgemv( 'CONJUGATE TRANSPOSE', lastv, lastc, cone,c, ldc, v, incv, & czero, work, 1_${ik}$ ) ! c(1:lastv,1:lastc) := c(...) - v(1:lastv,1) * w(1:lastc,1)**h call stdlib${ii}$_zgerc( lastv, lastc, -tau, v, incv, work, 1_${ik}$, c, ldc ) end if else ! form c * h if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastc,1:lastv) * v(1:lastv,1) call stdlib${ii}$_zgemv( 'NO TRANSPOSE', lastc, lastv, cone, c, ldc,v, incv, czero, & work, 1_${ik}$ ) ! c(1:lastc,1:lastv) := c(...) - w(1:lastc,1) * v(1:lastv,1)**h call stdlib${ii}$_zgerc( lastc, lastv, -tau, work, 1_${ik}$, v, incv, c, ldc ) end if end if return end subroutine stdlib${ii}$_zlarf #:for ck,ct,ci in CMPLX_KINDS_TYPES #:if not ck in ["sp","dp"] pure module subroutine stdlib${ii}$_${ci}$larf( side, m, n, v, incv, tau, c, ldc, work ) !! ZLARF: applies a complex elementary reflector H to a complex M-by-N !! matrix C, from either the left or the right. H is represented in the !! form !! H = I - tau * v * v**H !! where tau is a complex scalar and v is a complex vector. !! If tau = 0, then H is taken to be the unit matrix. !! To apply H**H, supply conjg(tau) instead !! tau. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_${ck}$, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: incv, ldc, m, n complex(${ck}$), intent(in) :: tau ! Array Arguments complex(${ck}$), intent(inout) :: c(ldc,*) complex(${ck}$), intent(in) :: v(*) complex(${ck}$), intent(out) :: work(*) ! ===================================================================== ! Local Scalars logical(lk) :: applyleft integer(${ik}$) :: i, lastv, lastc ! Executable Statements applyleft = stdlib_lsame( side, 'L' ) lastv = 0_${ik}$ lastc = 0_${ik}$ if( tau/=czero ) then ! set up variables for scanning v. lastv begins pointing to the end ! of v. if( applyleft ) then lastv = m else lastv = n end if if( incv>0_${ik}$ ) then i = 1_${ik}$ + (lastv-1) * incv else i = 1_${ik}$ end if ! look for the last non-czero row in v. do while( lastv>0 .and. v( i )==czero ) lastv = lastv - 1_${ik}$ i = i - incv end do if( applyleft ) then ! scan for the last non-czero column in c(1:lastv,:). lastc = stdlib${ii}$_ila${ci}$lc(lastv, n, c, ldc) else ! scan for the last non-czero row in c(:,1:lastv). lastc = stdlib${ii}$_ila${ci}$lr(m, lastv, c, ldc) end if end if ! note that lastc.eq.0_${ck}$ renders the blas operations null; no special ! case is needed at this level. if( applyleft ) then ! form h * c if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastv,1:lastc)**h * v(1:lastv,1) call stdlib${ii}$_${ci}$gemv( 'CONJUGATE TRANSPOSE', lastv, lastc, cone,c, ldc, v, incv, & czero, work, 1_${ik}$ ) ! c(1:lastv,1:lastc) := c(...) - v(1:lastv,1) * w(1:lastc,1)**h call stdlib${ii}$_${ci}$gerc( lastv, lastc, -tau, v, incv, work, 1_${ik}$, c, ldc ) end if else ! form c * h if( lastv>0_${ik}$ ) then ! w(1:lastc,1) := c(1:lastc,1:lastv) * v(1:lastv,1) call stdlib${ii}$_${ci}$gemv( 'NO TRANSPOSE', lastc, lastv, cone, c, ldc,v, incv, czero, & work, 1_${ik}$ ) ! c(1:lastc,1:lastv) := c(...) - w(1:lastc,1) * v(1:lastv,1)**h call stdlib${ii}$_${ci}$gerc( lastc, lastv, -tau, work, 1_${ik}$, v, incv, c, ldc ) end if end if return end subroutine stdlib${ii}$_${ci}$larf #:endif #:endfor pure module subroutine stdlib${ii}$_slarfx( side, m, n, v, tau, c, ldc, work ) !! SLARFX applies a real elementary reflector H to a real m by n !! matrix C, from either the left or the right. H is represented in the !! form !! H = I - tau * v * v**T !! where tau is a real scalar and v is a real vector. !! If tau = 0, then H is taken to be the unit matrix !! This version uses inline code if H has order < 11. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_sp, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: ldc, m, n real(sp), intent(in) :: tau ! Array Arguments real(sp), intent(inout) :: c(ldc,*) real(sp), intent(in) :: v(*) real(sp), intent(out) :: work(*) ! ===================================================================== ! Local Scalars integer(${ik}$) :: j real(sp) :: sum, t1, t10, t2, t3, t4, t5, t6, t7, t8, t9, v1, v10, v2, v3, v4, v5, v6, & v7, v8, v9 ! Executable Statements if( tau==zero )return if( stdlib_lsame( side, 'L' ) ) then ! form h * c, where h has order m. go to ( 10, 30, 50, 70, 90, 110, 130, 150,170, 190 )m ! code for general m call stdlib${ii}$_slarf( side, m, n, v, 1_${ik}$, tau, c, ldc, work ) go to 410 10 continue ! special code for 1 x 1 householder t1 = one - tau*v( 1_${ik}$ )*v( 1_${ik}$ ) do j = 1, n c( 1_${ik}$, j ) = t1*c( 1_${ik}$, j ) end do go to 410 30 continue ! special code for 2 x 2 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 end do go to 410 50 continue ! special code for 3 x 3 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 end do go to 410 70 continue ! special code for 4 x 4 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 end do go to 410 90 continue ! special code for 5 x 5 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 end do go to 410 110 continue ! special code for 6 x 6 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 end do go to 410 130 continue ! special code for 7 x 7 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 end do go to 410 150 continue ! special code for 8 x 8 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 end do go to 410 170 continue ! special code for 9 x 9 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) + v9*c( 9_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 c( 9_${ik}$, j ) = c( 9_${ik}$, j ) - sum*t9 end do go to 410 190 continue ! special code for 10 x 10 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 v10 = v( 10_${ik}$ ) t10 = tau*v10 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) + v9*c( 9_${ik}$, j ) +v10*c( 10_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 c( 9_${ik}$, j ) = c( 9_${ik}$, j ) - sum*t9 c( 10_${ik}$, j ) = c( 10_${ik}$, j ) - sum*t10 end do go to 410 else ! form c * h, where h has order n. go to ( 210, 230, 250, 270, 290, 310, 330, 350,370, 390 )n ! code for general n call stdlib${ii}$_slarf( side, m, n, v, 1_${ik}$, tau, c, ldc, work ) go to 410 210 continue ! special code for 1 x 1 householder t1 = one - tau*v( 1_${ik}$ )*v( 1_${ik}$ ) do j = 1, m c( j, 1_${ik}$ ) = t1*c( j, 1_${ik}$ ) end do go to 410 230 continue ! special code for 2 x 2 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 end do go to 410 250 continue ! special code for 3 x 3 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 end do go to 410 270 continue ! special code for 4 x 4 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 end do go to 410 290 continue ! special code for 5 x 5 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 end do go to 410 310 continue ! special code for 6 x 6 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 end do go to 410 330 continue ! special code for 7 x 7 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 end do go to 410 350 continue ! special code for 8 x 8 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 end do go to 410 370 continue ! special code for 9 x 9 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) + v9*c( j, 9_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 c( j, 9_${ik}$ ) = c( j, 9_${ik}$ ) - sum*t9 end do go to 410 390 continue ! special code for 10 x 10 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 v10 = v( 10_${ik}$ ) t10 = tau*v10 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) + v9*c( j, 9_${ik}$ ) +v10*c( j, 10_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 c( j, 9_${ik}$ ) = c( j, 9_${ik}$ ) - sum*t9 c( j, 10_${ik}$ ) = c( j, 10_${ik}$ ) - sum*t10 end do go to 410 end if 410 return end subroutine stdlib${ii}$_slarfx pure module subroutine stdlib${ii}$_dlarfx( side, m, n, v, tau, c, ldc, work ) !! DLARFX applies a real elementary reflector H to a real m by n !! matrix C, from either the left or the right. H is represented in the !! form !! H = I - tau * v * v**T !! where tau is a real scalar and v is a real vector. !! If tau = 0, then H is taken to be the unit matrix !! This version uses inline code if H has order < 11. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_dp, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: ldc, m, n real(dp), intent(in) :: tau ! Array Arguments real(dp), intent(inout) :: c(ldc,*) real(dp), intent(in) :: v(*) real(dp), intent(out) :: work(*) ! ===================================================================== ! Local Scalars integer(${ik}$) :: j real(dp) :: sum, t1, t10, t2, t3, t4, t5, t6, t7, t8, t9, v1, v10, v2, v3, v4, v5, v6, & v7, v8, v9 ! Executable Statements if( tau==zero )return if( stdlib_lsame( side, 'L' ) ) then ! form h * c, where h has order m. go to ( 10, 30, 50, 70, 90, 110, 130, 150,170, 190 )m ! code for general m call stdlib${ii}$_dlarf( side, m, n, v, 1_${ik}$, tau, c, ldc, work ) go to 410 10 continue ! special code for 1 x 1 householder t1 = one - tau*v( 1_${ik}$ )*v( 1_${ik}$ ) do j = 1, n c( 1_${ik}$, j ) = t1*c( 1_${ik}$, j ) end do go to 410 30 continue ! special code for 2 x 2 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 end do go to 410 50 continue ! special code for 3 x 3 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 end do go to 410 70 continue ! special code for 4 x 4 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 end do go to 410 90 continue ! special code for 5 x 5 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 end do go to 410 110 continue ! special code for 6 x 6 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 end do go to 410 130 continue ! special code for 7 x 7 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 end do go to 410 150 continue ! special code for 8 x 8 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 end do go to 410 170 continue ! special code for 9 x 9 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) + v9*c( 9_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 c( 9_${ik}$, j ) = c( 9_${ik}$, j ) - sum*t9 end do go to 410 190 continue ! special code for 10 x 10 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 v10 = v( 10_${ik}$ ) t10 = tau*v10 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) + v9*c( 9_${ik}$, j ) +v10*c( 10_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 c( 9_${ik}$, j ) = c( 9_${ik}$, j ) - sum*t9 c( 10_${ik}$, j ) = c( 10_${ik}$, j ) - sum*t10 end do go to 410 else ! form c * h, where h has order n. go to ( 210, 230, 250, 270, 290, 310, 330, 350,370, 390 )n ! code for general n call stdlib${ii}$_dlarf( side, m, n, v, 1_${ik}$, tau, c, ldc, work ) go to 410 210 continue ! special code for 1 x 1 householder t1 = one - tau*v( 1_${ik}$ )*v( 1_${ik}$ ) do j = 1, m c( j, 1_${ik}$ ) = t1*c( j, 1_${ik}$ ) end do go to 410 230 continue ! special code for 2 x 2 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 end do go to 410 250 continue ! special code for 3 x 3 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 end do go to 410 270 continue ! special code for 4 x 4 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 end do go to 410 290 continue ! special code for 5 x 5 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 end do go to 410 310 continue ! special code for 6 x 6 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 end do go to 410 330 continue ! special code for 7 x 7 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 end do go to 410 350 continue ! special code for 8 x 8 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 end do go to 410 370 continue ! special code for 9 x 9 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) + v9*c( j, 9_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 c( j, 9_${ik}$ ) = c( j, 9_${ik}$ ) - sum*t9 end do go to 410 390 continue ! special code for 10 x 10 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 v10 = v( 10_${ik}$ ) t10 = tau*v10 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) + v9*c( j, 9_${ik}$ ) +v10*c( j, 10_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 c( j, 9_${ik}$ ) = c( j, 9_${ik}$ ) - sum*t9 c( j, 10_${ik}$ ) = c( j, 10_${ik}$ ) - sum*t10 end do go to 410 end if 410 continue return end subroutine stdlib${ii}$_dlarfx #:for rk,rt,ri in REAL_KINDS_TYPES #:if not rk in ["sp","dp"] pure module subroutine stdlib${ii}$_${ri}$larfx( side, m, n, v, tau, c, ldc, work ) !! DLARFX: applies a real elementary reflector H to a real m by n !! matrix C, from either the left or the right. H is represented in the !! form !! H = I - tau * v * v**T !! where tau is a real scalar and v is a real vector. !! If tau = 0, then H is taken to be the unit matrix !! This version uses inline code if H has order < 11. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_${rk}$, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: ldc, m, n real(${rk}$), intent(in) :: tau ! Array Arguments real(${rk}$), intent(inout) :: c(ldc,*) real(${rk}$), intent(in) :: v(*) real(${rk}$), intent(out) :: work(*) ! ===================================================================== ! Local Scalars integer(${ik}$) :: j real(${rk}$) :: sum, t1, t10, t2, t3, t4, t5, t6, t7, t8, t9, v1, v10, v2, v3, v4, v5, v6, & v7, v8, v9 ! Executable Statements if( tau==zero )return if( stdlib_lsame( side, 'L' ) ) then ! form h * c, where h has order m. go to ( 10, 30, 50, 70, 90, 110, 130, 150,170, 190 )m ! code for general m call stdlib${ii}$_${ri}$larf( side, m, n, v, 1_${ik}$, tau, c, ldc, work ) go to 410 10 continue ! special code for 1 x 1 householder t1 = one - tau*v( 1_${ik}$ )*v( 1_${ik}$ ) do j = 1, n c( 1_${ik}$, j ) = t1*c( 1_${ik}$, j ) end do go to 410 30 continue ! special code for 2 x 2 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 end do go to 410 50 continue ! special code for 3 x 3 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 end do go to 410 70 continue ! special code for 4 x 4 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 end do go to 410 90 continue ! special code for 5 x 5 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 end do go to 410 110 continue ! special code for 6 x 6 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 end do go to 410 130 continue ! special code for 7 x 7 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 end do go to 410 150 continue ! special code for 8 x 8 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 end do go to 410 170 continue ! special code for 9 x 9 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) + v9*c( 9_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 c( 9_${ik}$, j ) = c( 9_${ik}$, j ) - sum*t9 end do go to 410 190 continue ! special code for 10 x 10 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 v10 = v( 10_${ik}$ ) t10 = tau*v10 do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) + v9*c( 9_${ik}$, j ) +v10*c( 10_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 c( 9_${ik}$, j ) = c( 9_${ik}$, j ) - sum*t9 c( 10_${ik}$, j ) = c( 10_${ik}$, j ) - sum*t10 end do go to 410 else ! form c * h, where h has order n. go to ( 210, 230, 250, 270, 290, 310, 330, 350,370, 390 )n ! code for general n call stdlib${ii}$_${ri}$larf( side, m, n, v, 1_${ik}$, tau, c, ldc, work ) go to 410 210 continue ! special code for 1 x 1 householder t1 = one - tau*v( 1_${ik}$ )*v( 1_${ik}$ ) do j = 1, m c( j, 1_${ik}$ ) = t1*c( j, 1_${ik}$ ) end do go to 410 230 continue ! special code for 2 x 2 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 end do go to 410 250 continue ! special code for 3 x 3 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 end do go to 410 270 continue ! special code for 4 x 4 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 end do go to 410 290 continue ! special code for 5 x 5 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 end do go to 410 310 continue ! special code for 6 x 6 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 end do go to 410 330 continue ! special code for 7 x 7 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 end do go to 410 350 continue ! special code for 8 x 8 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 end do go to 410 370 continue ! special code for 9 x 9 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) + v9*c( j, 9_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 c( j, 9_${ik}$ ) = c( j, 9_${ik}$ ) - sum*t9 end do go to 410 390 continue ! special code for 10 x 10 householder v1 = v( 1_${ik}$ ) t1 = tau*v1 v2 = v( 2_${ik}$ ) t2 = tau*v2 v3 = v( 3_${ik}$ ) t3 = tau*v3 v4 = v( 4_${ik}$ ) t4 = tau*v4 v5 = v( 5_${ik}$ ) t5 = tau*v5 v6 = v( 6_${ik}$ ) t6 = tau*v6 v7 = v( 7_${ik}$ ) t7 = tau*v7 v8 = v( 8_${ik}$ ) t8 = tau*v8 v9 = v( 9_${ik}$ ) t9 = tau*v9 v10 = v( 10_${ik}$ ) t10 = tau*v10 do j = 1, m sum = v1*c( j, 1_${ik}$ ) + v2*c( j, 2_${ik}$ ) + v3*c( j, 3_${ik}$ ) +v4*c( j, 4_${ik}$ ) + v5*c( j, 5_${ik}$ ) + & v6*c( j, 6_${ik}$ ) +v7*c( j, 7_${ik}$ ) + v8*c( j, 8_${ik}$ ) + v9*c( j, 9_${ik}$ ) +v10*c( j, 10_${ik}$ ) c( j, 1_${ik}$ ) = c( j, 1_${ik}$ ) - sum*t1 c( j, 2_${ik}$ ) = c( j, 2_${ik}$ ) - sum*t2 c( j, 3_${ik}$ ) = c( j, 3_${ik}$ ) - sum*t3 c( j, 4_${ik}$ ) = c( j, 4_${ik}$ ) - sum*t4 c( j, 5_${ik}$ ) = c( j, 5_${ik}$ ) - sum*t5 c( j, 6_${ik}$ ) = c( j, 6_${ik}$ ) - sum*t6 c( j, 7_${ik}$ ) = c( j, 7_${ik}$ ) - sum*t7 c( j, 8_${ik}$ ) = c( j, 8_${ik}$ ) - sum*t8 c( j, 9_${ik}$ ) = c( j, 9_${ik}$ ) - sum*t9 c( j, 10_${ik}$ ) = c( j, 10_${ik}$ ) - sum*t10 end do go to 410 end if 410 continue return end subroutine stdlib${ii}$_${ri}$larfx #:endif #:endfor pure module subroutine stdlib${ii}$_clarfx( side, m, n, v, tau, c, ldc, work ) !! CLARFX applies a complex elementary reflector H to a complex m by n !! matrix C, from either the left or the right. H is represented in the !! form !! H = I - tau * v * v**H !! where tau is a complex scalar and v is a complex vector. !! If tau = 0, then H is taken to be the unit matrix !! This version uses inline code if H has order < 11. ! -- lapack auxiliary routine -- ! -- lapack is a software package provided by univ. of tennessee, -- ! -- univ. of california berkeley, univ. of colorado denver and nag ltd..-- use stdlib_blas_constants_sp, only: negone, zero, half, one, two, three, four, eight, ten, czero, chalf, cone, cnegone ! Scalar Arguments character, intent(in) :: side integer(${ik}$), intent(in) :: ldc, m, n complex(sp), intent(in) :: tau ! Array Arguments complex(sp), intent(inout) :: c(ldc,*) complex(sp), intent(in) :: v(*) complex(sp), intent(out) :: work(*) ! ===================================================================== ! Local Scalars integer(${ik}$) :: j complex(sp) :: sum, t1, t10, t2, t3, t4, t5, t6, t7, t8, t9, v1, v10, v2, v3, v4, v5, & v6, v7, v8, v9 ! Intrinsic Functions ! Executable Statements if( tau==czero )return if( stdlib_lsame( side, 'L' ) ) then ! form h * c, where h has order m. go to ( 10, 30, 50, 70, 90, 110, 130, 150,170, 190 )m ! code for general m call stdlib${ii}$_clarf( side, m, n, v, 1_${ik}$, tau, c, ldc, work ) go to 410 10 continue ! special code for 1 x 1 householder t1 = cone - tau*v( 1_${ik}$ )*conjg( v( 1_${ik}$ ) ) do j = 1, n c( 1_${ik}$, j ) = t1*c( 1_${ik}$, j ) end do go to 410 30 continue ! special code for 2 x 2 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 end do go to 410 50 continue ! special code for 3 x 3 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 end do go to 410 70 continue ! special code for 4 x 4 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) v4 = conjg( v( 4_${ik}$ ) ) t4 = tau*conjg( v4 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 end do go to 410 90 continue ! special code for 5 x 5 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) v4 = conjg( v( 4_${ik}$ ) ) t4 = tau*conjg( v4 ) v5 = conjg( v( 5_${ik}$ ) ) t5 = tau*conjg( v5 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 end do go to 410 110 continue ! special code for 6 x 6 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) v4 = conjg( v( 4_${ik}$ ) ) t4 = tau*conjg( v4 ) v5 = conjg( v( 5_${ik}$ ) ) t5 = tau*conjg( v5 ) v6 = conjg( v( 6_${ik}$ ) ) t6 = tau*conjg( v6 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 end do go to 410 130 continue ! special code for 7 x 7 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) v4 = conjg( v( 4_${ik}$ ) ) t4 = tau*conjg( v4 ) v5 = conjg( v( 5_${ik}$ ) ) t5 = tau*conjg( v5 ) v6 = conjg( v( 6_${ik}$ ) ) t6 = tau*conjg( v6 ) v7 = conjg( v( 7_${ik}$ ) ) t7 = tau*conjg( v7 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 end do go to 410 150 continue ! special code for 8 x 8 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) v4 = conjg( v( 4_${ik}$ ) ) t4 = tau*conjg( v4 ) v5 = conjg( v( 5_${ik}$ ) ) t5 = tau*conjg( v5 ) v6 = conjg( v( 6_${ik}$ ) ) t6 = tau*conjg( v6 ) v7 = conjg( v( 7_${ik}$ ) ) t7 = tau*conjg( v7 ) v8 = conjg( v( 8_${ik}$ ) ) t8 = tau*conjg( v8 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 end do go to 410 170 continue ! special code for 9 x 9 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) v4 = conjg( v( 4_${ik}$ ) ) t4 = tau*conjg( v4 ) v5 = conjg( v( 5_${ik}$ ) ) t5 = tau*conjg( v5 ) v6 = conjg( v( 6_${ik}$ ) ) t6 = tau*conjg( v6 ) v7 = conjg( v( 7_${ik}$ ) ) t7 = tau*conjg( v7 ) v8 = conjg( v( 8_${ik}$ ) ) t8 = tau*conjg( v8 ) v9 = conjg( v( 9_${ik}$ ) ) t9 = tau*conjg( v9 ) do j = 1, n sum = v1*c( 1_${ik}$, j ) + v2*c( 2_${ik}$, j ) + v3*c( 3_${ik}$, j ) +v4*c( 4_${ik}$, j ) + v5*c( 5_${ik}$, j ) + & v6*c( 6_${ik}$, j ) +v7*c( 7_${ik}$, j ) + v8*c( 8_${ik}$, j ) + v9*c( 9_${ik}$, j ) c( 1_${ik}$, j ) = c( 1_${ik}$, j ) - sum*t1 c( 2_${ik}$, j ) = c( 2_${ik}$, j ) - sum*t2 c( 3_${ik}$, j ) = c( 3_${ik}$, j ) - sum*t3 c( 4_${ik}$, j ) = c( 4_${ik}$, j ) - sum*t4 c( 5_${ik}$, j ) = c( 5_${ik}$, j ) - sum*t5 c( 6_${ik}$, j ) = c( 6_${ik}$, j ) - sum*t6 c( 7_${ik}$, j ) = c( 7_${ik}$, j ) - sum*t7 c( 8_${ik}$, j ) = c( 8_${ik}$, j ) - sum*t8 c( 9_${ik}$, j ) = c( 9_${ik}$, j ) - sum*t9 end do go to 410 190 continue ! special code for 10 x 10 householder v1 = conjg( v( 1_${ik}$ ) ) t1 = tau*conjg( v1 ) v2 = conjg( v( 2_${ik}$ ) ) t2 = tau*conjg( v2 ) v3 = conjg( v( 3_${ik}$ ) ) t3 = tau*conjg( v3 ) v4 = conjg( v( 4_${ik}$