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>