The R Project SVN R

Rev

Rev 75253 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 75253 Rev 76639
Line 1... Line 1...
1
c -- called from R's  svd(x, ..., LINPACK = TRUE)  , i.e, *NOT* by default -- 
1
c -- formerly called from R's  svd(x, ..., LINPACK = TRUE)  -- 
-
 
2
c  Also called from loessf.f.
2
 
3
 
3
c     Minimally modernized in 2018-09, so is fixed-form F90, not F77
4
c     Minimally modernized in 2018-09, so is fixed-form F90, not F77
4
c
5
c
5
c     dsvdc is a subroutine to reduce a double precision nxp matrix x
6
c     dsvdc is a subroutine to reduce a double precision nxp matrix x
6
c     by orthogonal transformations u and v to diagonal form.  the
7
c     by orthogonal transformations u and v to diagonal form.  the
Line 101... Line 102...
101
c     blas daxpy,ddot,dscal,dswap,dnrm2,drotg
102
c     blas daxpy,ddot,dscal,dswap,dnrm2,drotg
102
c     fortran dabs,dmax1,max0,min0,mod,dsqrt
103
c     fortran dabs,dmax1,max0,min0,mod,dsqrt
103
c
104
c
104
      subroutine dsvdc(x,ldx,n,p,s,e,u,ldu,v,ldv,work,job,info)
105
      subroutine dsvdc(x,ldx,n,p,s,e,u,ldu,v,ldv,work,job,info)
105
      integer ldx,n,p,ldu,ldv,job,info
106
      integer ldx,n,p,ldu,ldv,job,info
106
      double precision x(ldx,*),s(*),e(*),u(ldu,*),v(ldv,*),work(*)
107
      double precision x(ldx,p),s(min(n+1,p)),e(p),
-
 
108
     + u(ldu,n),v(ldv,p),work(n)
107
c
109
c
108
c     internal variables
110
c     internal variables
109
c
111
c
110
      integer i,iter,j,jobu,k,kase,kk,l,ll,lls,lm1,lp1,ls,lu,m,maxit,
112
      integer i,iter,j,jobu,k,kase,kk,l,ll,lls,lm1,lp1,ls,lu,m,maxit,
111
     *        mm,mm1,mp1,nct,nctp1,ncu,nrt,nrtp1
113
     *        mm,mm1,mp1,nct,nctp1,ncu,nrt,nrtp1