with A83_014_Vector; use A83_014_Vector; with ConsAK; package A83_015_Matrix is ---------------------------------------------------------------------- ---------------------------------------------------------------------- Copyright : constant string := "A83_015_Matrix 1.00 (C) 1994 by David Wallace Croft." & " All rights reserved."; Description : constant string := "Matrix type and operations."; ---------------------------------------------------------------------- type Matrix_Type is array ( integer range <>, integer range <> ) of float; ---------------------------------------------------------------------- function "*" ( M : Matrix_Type; F : float ) return Matrix_Type; function "*" ( M1 : Matrix_Type; M2 : Matrix_Type ) return Matrix_Type; function "*" ( M : Matrix_Type; V : Vector_Type ) return Vector_Type; function "/" ( M : Matrix_Type; F : float ) return Matrix_Type; function "-" ( M : Matrix_Type ) return Matrix_Type; function "<=" ( M1, M2 : Matrix_Type ) return boolean; function Adjoint ( M : Matrix_Type ) return Matrix_Type; function Ask ( Row_Default : in positive := 2; Col_Default : in positive := 2 ) return Matrix_Type; procedure Ask ( M : in out Matrix_Type; Prompt : in string ); function Cofactor ( M : Matrix_Type; Row, Col : integer ) return float; function Column ( M : Matrix_Type; Col : integer ) return Vector_Type; function Concatenate ( M1, M2 : Matrix_Type; Col : boolean := true ) return Matrix_Type; function Concatenate ( V1, V2 : Vector_Type ) return Matrix_Type; procedure Demo; function Determinant ( M : Matrix_Type ) return float; function Fill ( M : Matrix_Type; F : float := 0.0 ) return Matrix_Type; function Identity ( M : Matrix_Type ) return Matrix_Type; function Inverse ( M : Matrix_Type ) return Matrix_Type; function Is_Square ( M : Matrix_Type ) return boolean; procedure Load ( M : out Matrix_Type; File_Name : in string ); function Matrix_Convert ( V : Vector_Type ) return Matrix_Type; function Minor ( A : Matrix_Type; Row, Col : integer ) return float; procedure Put_Line ( M : in Matrix_Type ); procedure Save ( M : in Matrix_Type; File_Name : in string ); function Row ( M : Matrix_Type; Row : integer ) return Vector_Type; function Slice ( Tiny, Huge : Matrix_Type ) return Matrix_Type; function Sub_Matrix ( A : Matrix_Type; Row, Col : integer ) return Matrix_Type; function Transpose ( M : Matrix_Type ) return Matrix_Type; function Vector_Convert ( M : Matrix_Type ) return Vector_Type; ---------------------------------------------------------------------- ---------------------------------------------------------------------- end A83_015_Matrix;