DEFINITION MODULE DynMat;
(*------------------------------------------------------------------------*)
(* Modul zur Verwaltung von dynamisch allokierten zweidimensionalen *)
(* Matrizen wie sie in Deklera definiert wurden. *)
(* Modul for handling dynamicly allocated two dimensional matrices as *)
(* defined in Deklera.def. *)
(*------------------------------------------------------------------------*)
(* Implementation : Michael Riedl *)
(* Licence : GNU Lesser General Public License (LGPL) *)
(*------------------------------------------------------------------------*)
(* $Id: DynMat.def,v 1.2 2017/01/02 08:36:11 mriedl Exp mriedl $ *)
FROM SYSTEM IMPORT TSIZE;
FROM Deklera IMPORT MATRIX,PMATRIX;
PROCEDURE AllocMat(VAR Mat : PMATRIX;
m,n : CARDINAL);
(*----------------------------------------------------------------*)
(* Erzeugt eine dynamische Matrix Mat[1..m,1..n]. Wenn nicht *)
(* gen"ugend Freispeicher vorhanden ist, wird Mat auf NIL gesetzt *)
(* Errros.Fehler auf TRUE und in Errros.Fehler eine entsprechende *)
(* Fehlermeldung generiert. Diese wird auf dem Fehlerkanal aus- *)
(* gegeben wird, ohne jedoch das Programm abzubrechen. *)
(*----------------------------------------------------------------*)
PROCEDURE DeAllocMat(VAR Mat : PMATRIX;
m,n : CARDINAL);
(*----------------------------------------------------------------*)
(* Gibt den Speicherplatz der dynamischen Matrix Mat wieder *)
(* frei und setzt Mat auf NIL. *)
(*----------------------------------------------------------------*)
PROCEDURE ConvMat(VAR Mat : MATRIX;
VAR PMat : PMATRIX); (* ==> Referenz auf Mat *)
(*----------------------------------------------------------------*)
(* Erzeugt eine Reverenz auf eine statische Matrix *)
(* Die Dimension dieser Referenz entspricht dann *)
(* [1..Deklera.MaxDim, 1..Deklera.MaxDim]. *)
(* Diese Referenz darf NICHT mit DeAllocMat wieder freigegeben *)
(* werden, dann ist das absolute Chaos garantiert. Zu diesem *)
(* Zweck ist die Routine DeAllocConvMat gedacht. *)
(*----------------------------------------------------------------*)
PROCEDURE DeAllocConvMat(VAR Mat : MATRIX;
VAR PMat : PMATRIX); (* <==> Referenz auf Mat *)
(*----------------------------------------------------------------*)
(* L"oscht die Reverenz PMat auf die statische Matrix Mat. *)
(* Wenn PMat NICHT auf Mat verwei3t, wird Errros.Fehler und *)
(* Errros.Fehlerflag entsprechend gesetzt und KEINE *)
(* Speicherfreigabe ausgef"uhrt. *)
(*----------------------------------------------------------------*)
END DynMat.