LocSaveFunc:=proc(T,funcnum,verlist,fname) local fd,i,vertex; fd:=fopen(fname,WRITE); fprintf(fd,"%d\n",nops(verlist)); for vertex in verlist do fprintf(fd,"%d ",nops(vertex)); for i in vertex do fprintf(fd,"%d ",i); end do; fprintf(fd,"%20.20g\n",T[vertex,funcnum]); end do; fclose(fd); end; LocReadFunc:=proc(T,funcnum,fname) local verlist,i,j,fd,numvers,numnums,vertex,n; verlist:=[]; fd:=fopen(fname,READ); numvers:=fscanf(fd,"%d\n")[1]; for i from 1 to numvers do numnums:=fscanf(fd,"%d ")[1]; vertex:=[]; for j from 1 to numnums do n:=fscanf(fd,"%d ")[1]; vertex:=[op(vertex),n]; end do; T[vertex,funcnum]:=fscanf(fd,"%g\n")[1]; verlist:=[op(verlist),vertex]; end do; fclose(fd); return(verlist); end; saveFunc:=proc(T,funcnum,level,nfname) local fd,vers,vertex,i,fname; fname:=nfname; fd:=fopen(fname,WRITE); fprintf(fd,"%d\n",level); vers:=vertices(level); for vertex in vers do #fprintf(fd,"%d ",nops(vertex)); #for i in vertex do # fprintf(fd,"%d ",i); #end do; #print(T[vertex,funcnum]); fprintf(fd,"%20.20g\n",T[vertex,funcnum]); end do; fclose(fd); end; readFunc:=proc(T,funcnum,nfname) local fd,fname,level,vers,vertex; fname:=nfname; fd:=fopen(fname,READ); level:=fscanf(fd,"%d\n")[1]; vers:=vertices(level); for vertex in vers do T[vertex,funcnum]:=fscanf(fd,"%g\n")[1]; end do; fclose(fd); RETURN(level); end; saveMatr:=proc(M,rows,columns,fname) local fd,i,j; fd:=fopen(fname,WRITE); fprintf(fd,"%d\n",rows); fprintf(fd,"%d\n",columns); for i from 1 to rows do for j from 1 to columns do fprintf(fd,"%20.20g\n",M[i,j]); end do; end do; fclose(fd); RETURN(rows*columns); end; readMatr:=proc(fname) local M,rows,columns,fd,i,j; fd:=fopen(fname,READ); rows:=fscanf(fd,"%d\n")[1]; columns:=fscanf(fd,"%d\n")[1]; M:=matrix(rows,columns); for i from 1 to rows do for j from 1 to columns do M[i,j]:=fscanf(fd,"%g\n")[1]; end do; end do; fclose(fd); RETURN(M); end;