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

c8fixed:=proc(x:vector,c8)
    local fvect, F15, niter, err, eps, i, j;
    fvect:=vector(15): F15:=matrix(15,15): niter:=0:
    #
    err:=1: niter:=0: eps:=10^(-Digits+20):
    #
    while err > eps and niter <= 100 do
        niter:=niter+1:
        for i from 1 to 15 do
            fvect[i]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                           c[5]=x[5],c[6]=x[6],c[7]=x[7],c[8]=c8,
                           c[9]=x[8],c[10]=x[9],c[11]=x[10],c[12]=x[11],
                           c[13]=x[12],c[14]=x[13],c[15]=x[14],c[16]=x[15],
			   f[i]):
            for j from 1 to 7 do
                F15[i,j]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                           c[5]=x[5],c[6]=x[6],c[7]=x[7],c[8]=c8,
                           c[9]=x[8],c[10]=x[9],c[11]=x[10],c[12]=x[11],
                           c[13]=x[12],c[14]=x[13],c[15]=x[14],c[16]=x[15],
			   g[i][j]):
            od:
            for j from 8 to 15 do
                F15[i,j]:=subs(c[1]=x[1],c[2]=x[2],c[3]=x[3],c[4]=x[4],
                           c[5]=x[5],c[6]=x[6],c[7]=x[7],c[8]=c8,
                           c[9]=x[8],c[10]=x[9],c[11]=x[10],c[12]=x[11],
                           c[13]=x[12],c[14]=x[13],c[15]=x[14],c[16]=x[15],
			   g[i][j+1]):
            od:
        od: 
        #
        err:=norm(fvect): 
        x:= evalm(x-linsolve(F15,fvect)):
    od:
    # print(err);
    if niter>100 then
       print(`In c8fixed: Over 100 iterations`):
    fi:
end:
