with Abstract_Ring;
with Abstract_Ring.Field;
with Generic_Vectors;
with Generic_Matrices;
generic
with package Ring is new Abstract_Ring(<>);
with package Field is new Ring.Field(<>);
with package Vectors is new Generic_Vectors(Ring);
with package Matrices is new Generic_Matrices(Ring,Vectors);
package Generic_Norms_Equals is
-- DESCRIPTION :
-- Provides norms of vectors and decision routines for equalities.
use Ring,Field,Vectors,Matrices;
function Max_Norm ( v : Vector ) return number;
-- DESCRIPTION :
-- Returns the absolute value of the greatest element in v.
function Sum_Norm ( v : Vector ) return number;
-- DESCRIPTION :
-- Returns the sum of all absolute values of the elements in v.
function Max_Norm ( m : Matrix ) return number;
-- DESCRIPTION :
-- Returns the maximal element in the matrix in absolute value.
function Equal ( x,y,tol : number ) return boolean;
-- DESCRIPTION :
-- Returns true if abs(x-y) < tol, otherwise false is returned.
function Equal ( x,y : Vector; tol : number ) return boolean;
-- DESCRIPTION :
-- Returns true if Equal(x(i),y(i),tol), for i in x'range=y'range,
-- otherwise false is returned.
-- REQUIRED : x'range = y'range.
end Generic_Norms_Equals;