[BACK]Return to multprec_complex_norms_equals.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Matrices

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Matrices/multprec_complex_norms_equals.adb, Revision 1.1.1.1

1.1       maekawa     1: package body Multprec_Complex_Norms_Equals is
                      2:
                      3:   function Max_Norm ( v : Vector ) return Floating_Number is
                      4:
                      5:     res : Floating_Number := AbsVal(v(v'first));
                      6:
                      7:   begin
                      8:     for i in v'first+1..v'last loop
                      9:       declare
                     10:         abstmp : Floating_Number := AbsVal(v(i));
                     11:       begin
                     12:         if abstmp > res
                     13:          then Copy(abstmp,res);
                     14:         end if;
                     15:         Clear(abstmp);
                     16:       end;
                     17:     end loop;
                     18:     return res;
                     19:   end Max_Norm;
                     20:
                     21:   function Sum_Norm ( v : Vector ) return Floating_Number is
                     22:
                     23:     res : Floating_Number := AbsVal(v(v'first));
                     24:
                     25:   begin
                     26:     for i in v'first+1..v'last loop
                     27:       declare
                     28:         abstmp : Floating_Number := AbsVal(v(i));
                     29:       begin
                     30:         Add(res,abstmp);
                     31:         Clear(abstmp);
                     32:       end;
                     33:     end loop;
                     34:     return res;
                     35:   end Sum_Norm;
                     36:
                     37:   function Equal ( x,y : Complex_Number;
                     38:                    tol : Floating_Number ) return boolean is
                     39:
                     40:     dif : Complex_Number := x-y;
                     41:     absdif : Floating_Number := AbsVal(dif);
                     42:     res : boolean := (absdif < tol);
                     43:
                     44:   begin
                     45:     Clear(dif);
                     46:     Clear(absdif);
                     47:     return res;
                     48:   end Equal;
                     49:
                     50:   function Equal ( x,y : Vector; tol : Floating_Number ) return boolean is
                     51:   begin
                     52:     for i in x'range loop
                     53:       if not Equal(x(i),y(i),tol)
                     54:        then return false;
                     55:       end if;
                     56:     end loop;
                     57:     return true;
                     58:   end Equal;
                     59:
                     60: end Multprec_Complex_Norms_Equals;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>