2 SUBROUTINE polysvd(nfitin,x,y,m,b)
11 INTEGER,
INTENT(in) :: m, nfitin
12 REAL (rprec),
DIMENSION(m),
INTENT(in) :: x,y
13 REAL(rprec) ,
DIMENSION(nfitin),
INTENT(out) :: b
17 REAL (rprec) :: cutoff=1.e-7_dp
18 REAL (rprec),
DIMENSION(:,:), ALLOCATABLE
19 1 :: amatrix, vv ,uu, wwd
20 REAL (rprec),
DIMENSION(:) ,
ALLOCATABLE :: ww
21 REAL (rprec),
DIMENSION(:),
ALLOCATABLE,
SAVE :: apar
22 INTEGER ,
DIMENSION(:) ,
ALLOCATABLE :: pwr
25 ALLOCATE(amatrix(m,n))
41 amatrix(i,j)=x(i)**pwr(j)
46 CALL svdcmp(uu,m,n,m,n,ww,vv)
56 IF(ww(i) .lt. cutoff) wwd(i,i)=0
59 apar=matmul(vv,matmul(wwd,matmul(transpose(uu),y)))
68 END SUBROUTINE polysvd