#                           Ren-Cang Li, June 1, 1996
#                           na.rcli@na-net.ornl.gov

NewtonItern:=proc(x:vector)
    local fvect, DF, niter, err, eps, i, j;
    fvect:=vector(6): DF:=matrix(6,6): niter:=0:
    #
    err:=1: niter:=0: eps:=10^(-Digits+30):
    #
    while err > eps and niter <= 50 do
        niter:=niter+1:
        for i from 1 to 6 do
            fvect[i]:=subs(cx[1]=x[1], cx[2]=x[2], cx[3]=x[3], 
                           cy[1]=x[4], cy[2]=x[5], cy[3]=x[6], f[i]):
            for j from 1 to 6 do
                DF[i,j]:=subs(cx[1]=x[1], cx[2]=x[2], cx[3]=x[3],
                              cy[1]=x[4], cy[2]=x[5], cy[3]=x[6],g[i][j]):
            od:
        od: 
        err:=norm(fvect): 
	# print(err):  # print(evalf(Svd(DF))):
        x:= evalm(x-linsolve(DF, fvect)):
    od:
    # print(err);
    if niter>25 then
       print(`In NewtonItern: Over 50 iterations`):
    fi:
    err;
end:
