Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Matrices/generic_norms_equals.adb, Revision 1.1.1.1
1.1 maekawa 1: package body Generic_Norms_Equals is
2:
3: function Max_Norm ( v : Vector ) return number is
4:
5: res : number := AbsVal(v(v'first));
6:
7: begin
8: for i in v'first+1..v'last loop
9: declare
10: abstmp : 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 number is
22:
23: res : number := AbsVal(v(v'first));
24:
25: begin
26: for i in v'first+1..v'last loop
27: declare
28: abstmp : 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 Max_Norm ( m : Matrix ) return number is
38:
39: res : number;
40:
41: begin
42: Copy(zero,res);
43: for i in m'range(1) loop
44: for j in m'range(2) loop
45: declare
46: abstmp : number := AbsVal(m(i,j));
47: begin
48: if abstmp > res
49: then Copy(abstmp,res);
50: end if;
51: Clear(abstmp);
52: end;
53: end loop;
54: end loop;
55: return res;
56: end Max_Norm;
57:
58: function Equal ( x,y,tol : number ) return boolean is
59:
60: dif : number := x-y;
61: absdif : number := AbsVal(dif);
62: res : boolean := (absdif < tol);
63:
64: begin
65: Clear(dif);
66: Clear(absdif);
67: return res;
68: end Equal;
69:
70: function Equal ( x,y : Vector; tol : number ) return boolean is
71: begin
72: for i in x'range loop
73: if not Equal(x(i),y(i),tol)
74: then return false;
75: end if;
76: end loop;
77: return true;
78: end Equal;
79:
80: end Generic_Norms_Equals;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>