with integer_io; use integer_io; with Standard_Floating_Numbers_io; use Standard_Floating_Numbers_io; with Standard_Complex_Numbers_io; use Standard_Complex_Numbers_io; with Standard_Complex_Solutions_io; use Standard_Complex_Solutions_io; package body Process_io is out_code : output_code; procedure Write_path ( ft : in file_type; n : in positive ) is begin if out_code /= nil then put(ft,"***** path"); put(ft,n); put(ft," *****"); new_line(ft); end if; end Write_path; procedure Write_path ( n : in positive ) is begin Write_path(Standard_Output,n); end Write_path; procedure Write_block ( ft : in file_type; n : in positive ) is begin --if out_code /= nil -- then put(ft,"##### block"); put(ft,n); put_line(ft," #####"); --end if; end Write_block; procedure Write_block ( n : in positive ) is begin Write_Block(Standard_Output,n); end Write_block; procedure Set_Output_Code ( u : in output_code ) is begin out_code := u; end Set_output_code; procedure sWrite ( ft : in file_type; sol : in Solution ) is begin if (out_code = s) or (out_code = sp) or (out_code = sc) or (out_code = spc) then put(ft,sol); new_line(ft); end if; end sWrite; procedure sWrite ( sol : in Solution ) is begin sWrite(Standard_Output,sol); end sWrite; procedure pWrite ( ft : in file_type; step : in double_float; t : in Complex_Number ) is begin if (out_code = p) or (out_code = sp) or (out_code = pc) or (out_code = spc) then put(ft,"step :"); put(ft,step); put(ft," "); put(ft,"t :"); put(ft,t); new_line(ft); end if; end pWrite; procedure pWrite ( ft : in file_type; step : in double_float; t : in Complex_Number; sol : in Solution ) is begin if (out_code = p) or (out_code = sp) or (out_code = pc) or (out_code = spc) then put(ft,"step :"); put(ft,step); put(ft," "); put(ft,"t :"); put(ft,t); new_line(ft); if (out_code = sp) or (out_code = spc) then put_line(ft,"the predicted solution for t :"); put_vector(ft,sol); end if; end if; end pWrite; procedure pWrite ( step : in double_float; t : in Complex_Number ) is begin pWrite(Standard_Output,step,t); end pWrite; procedure pWrite ( step : in double_float; t : in Complex_Number; sol : in Solution ) is begin pWrite(Standard_Output,step,t,sol); end pWrite; procedure cWrite ( ft : in file_type; normax,normrx,normaf,normrf : in double_float ) is begin if (out_code = c) or (out_code = pc) or (out_code = sc) or (out_code = spc) then put(ft,"correction (a&r):"); put(ft,normax,3,3,3); put(ft,normrx,3,3,3); put(ft," "); put(ft,"residual (a&r):"); put(ft,normaf,3,3,3); put(ft,normaf,3,3,3); new_line(ft); end if; end cWrite; procedure cWrite ( normax,normrx,normaf,normrf : in double_float ) is begin cWrite(Standard_Output,normax,normrx,normaf,normrf); end cWrite; procedure cWrite ( ft : in file_type; rcond : in double_float; m : in natural ) is begin if (out_code = c) or (out_code = sc) or (out_code = pc) or (out_code = spc) then put(ft,"rcond :"); put(ft,rcond); put(ft," "); put(ft,"multiplicity : "); put(ft,m,1); new_line(ft); end if; end cWrite; procedure cWrite ( rcond : in double_float; m : in natural ) is begin cWrite(Standard_Output,rcond,m); end cWrite; procedure Write_convergence_factor ( factor : in double_float ) is begin if (out_code = c) or (out_code = sc) or (out_code = pc) or (out_code = spc) then put("convergence ratio :"); put(factor); new_line; end if; end Write_convergence_factor; procedure Write_convergence_factor ( ft : in file_type; factor : in double_float ) is begin if (out_code = c) or (out_code = sc) or (out_code = pc) or (out_code = spc) then put(ft,"convergence ratio :"); put(ft,factor); new_line(ft); end if; end Write_convergence_factor; procedure Write_Statistics ( nstep,nfail,niter,nsyst : in natural ) is begin Write_Statistics(Standard_Output,nstep,nfail,niter,nsyst); end Write_Statistics; procedure Write_Statistics ( ft : in file_type; nstep,nfail,niter,nsyst : in natural ) is begin --if out_code /= nil -- then put_line(ft,"######################################################"); put(ft,"number of steps :"); put(ft,nstep); new_line(ft); put(ft,"number of failures :"); put(ft,nfail); new_line(ft); put(ft,"number of iterations :"); put(ft,niter); new_line(ft); put(ft,"number of systems :"); put(ft,nsyst); new_line(ft); --end if; end Write_Statistics; procedure Write_Total_Statistics ( tnstep,tnfail,tniter,tnsyst : in natural ) is begin Write_Total_Statistics(Standard_Output,tnstep,tnfail,tniter,tnsyst); end Write_Total_Statistics; procedure Write_Total_Statistics ( ft : in file_type; tnstep,tnfail,tniter,tnsyst : in natural ) is begin put(ft,"total number of steps :"); put(ft,tnstep); new_line(ft); put(ft,"total number of failures :"); put(ft,tnfail); new_line(ft); put(ft,"total number of iterations :"); put(ft,tniter); new_line(ft); put(ft,"total number of systems :"); put(ft,tnsyst); new_line(ft); end Write_Total_Statistics; procedure sWrite_Solutions ( sols : in Solution_List ) is begin sWrite_Solutions(Standard_Output,sols); end sWrite_Solutions; procedure sWrite_Solutions ( ft : in file_type; sols : in Solution_List ) is begin if out_code /= nil then put(ft,sols); end if; end sWrite_Solutions; end Process_io;