Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Matrices/generic_norms_equals.adb, Revision 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>