[BACK]Return to generic_matrices.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Matrices

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Matrices/generic_matrices.ads, Revision 1.1.1.1

1.1       maekawa     1: with Abstract_Ring,Generic_Vectors;
                      2:
                      3: generic
                      4:
                      5:   with package Ring is new Abstract_Ring(<>);
                      6:   with package Vectors is new Generic_Vectors(Ring);
                      7:
                      8: package Generic_Matrices is
                      9:
                     10: -- DESCRIPTION :
                     11: --   An abstraction for matrices with coefficients over any ring.
                     12:
                     13:   use Ring;  use Vectors;
                     14:
                     15:   type Matrix is array ( integer range <>, integer range <> ) of number;
                     16:   type Link_to_Matrix is access Matrix;
                     17:
                     18: -- COMPARISON AND COPYING :
                     19:
                     20:   function Equal ( a,b : Matrix ) return boolean;
                     21:
                     22:   -- DESCRIPTION :
                     23:   --   Comparing by using the comparison operations of the Ring.
                     24:
                     25:   procedure Copy ( a : in Matrix; b : in out Matrix );
                     26:
                     27:   -- DESCRIPTION :
                     28:   --   Makes a deep copy of the matrix a to the matrix b.
                     29:
                     30:   -- REQUIRED : a'range(1) = b'range(1) and a'range(2) = b'range(2).
                     31:
                     32: -- MATRIX-MATRIX OPERATIONS :
                     33:
                     34:   function "+" ( a,b : Matrix ) return Matrix;             -- return a+b
                     35:   function "+" ( a : Matrix ) return Matrix;               -- copies a
                     36:   function "-" ( a,b : Matrix ) return Matrix;             -- return a-b
                     37:   function "-" ( a : Matrix ) return Matrix;               -- return -a
                     38:   function "*" ( a,b : Matrix ) return Matrix;             -- return a*b
                     39:
                     40:   procedure Mul1 ( a : in out Matrix; b : in Matrix );     -- a := a*b
                     41:   procedure Mul2 ( a : in Matrix; b : in out Matrix );     -- b := a*b
                     42:
                     43: -- MATRIX-VECTOR OPERATIONS :
                     44:
                     45:   function "*" ( a : Matrix; v : Vector ) return Vector;   -- return a*v
                     46:   function "*" ( v : Vector; a : Matrix ) return Vector;   -- return v*a
                     47:
                     48:   procedure Mul ( a : in Matrix; v : in out Vector );      -- v := a*v
                     49:   procedure Mul ( v : in out Vector; a : in Matrix );      -- v := a*v
                     50:
                     51: -- DESTRUCTORS :
                     52:
                     53:   procedure Clear ( a : in out Matrix );
                     54:   procedure Clear ( a : in out Link_to_Matrix );
                     55:
                     56:   -- DESCRIPTION :
                     57:   --   Deallocation of memory.
                     58:
                     59: end Generic_Matrices;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>