with integer_io; use integer_io;
with Multprec_Floating_Numbers_io; use Multprec_Floating_Numbers_io;
with Multprec_Complex_Norms_Equals; use Multprec_Complex_Norms_Equals;
package body Multprec_Residual_Evaluations is
function Residual ( p_eval : Eval_Poly_Sys; zero : Vector )
return Floating_Number is
res : Floating_Number;
eva : Vector(p_eval'range) := Eval(p_eval,zero);
begin
res := Max_Norm(eva);
Clear(eva);
return res;
end Residual;
procedure Residual ( file : in file_type;
p_eval : in Eval_Poly_Sys; sol : in Solution ) is
res : Floating_Number := Residual(p_eval,sol.v);
begin
put(file,res);
Clear(res);
end Residual;
procedure Residuals ( file : in file_type;
p_eval : in Eval_Poly_Sys; sols : in Solution_List ) is
tmp : Solution_List := sols;
ls : Link_to_Solution;
begin
for i in 1..Length_Of(sols) loop
ls := Head_Of(tmp);
put(file,"residual "); put(file,i,1); put(file," : ");
Residual(file,p_eval,ls.all);
new_line(file);
tmp := Tail_Of(tmp);
end loop;
end Residuals;
end Multprec_Residual_Evaluations;