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>