[BACK]Return to standard_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/standard_complex_norms_equals.adb, Revision 1.1.1.1

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

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