Switch to unified view

a/MatLib.def b/MatLib.def
...
...
209
          (* Spiegelt die unsymmetrische Matrix A an der Hauptdiagonalen.   *)
209
          (* Spiegelt die unsymmetrische Matrix A an der Hauptdiagonalen.   *)
210
          (* Die transponiert Matrix hat die Dimension N,M, A muss diesen   *)
210
          (* Die transponiert Matrix hat die Dimension N,M, A muss diesen   *)
211
          (* Speicherplatz bereithalten.                                    *)
211
          (* Speicherplatz bereithalten.                                    *)
212
          (*----------------------------------------------------------------*)
212
          (*----------------------------------------------------------------*)
213
213
214
PROCEDURE CStuerzMN(VAR A      : ARRAY OF ARRAY OF LONGCOMPLEX;
215
                        M,N    : CARDINAL;
216
                        IfConj : BOOLEAN);
217
218
          (*----------------------------------------------------------------*)
219
          (* Spiegelt die unsymmetrische komplexe Matrix A an der Haupt-    *)
220
          (* diagonalen. Die transponiert Matrix hat die Dimension N,M,     *)
221
          (* A muss diesen  Speicherplatz bereithalten.                     *)
222
          (* Wenn IfConj = TRUE wird beim Spiegeln das konjugiert           *)
223
          (* komplexe gesetzt (d.h. es wird die adjungierte Matrix erzeugt) *)
224
          (*----------------------------------------------------------------*)
225
214
PROCEDURE Transpose(VAR A : ARRAY OF ARRAY OF LONGREAL; 
226
PROCEDURE Transpose(VAR A : ARRAY OF ARRAY OF LONGREAL; 
215
                        n : CARDINAL);
227
                        n : CARDINAL);
216
228
217
          (*----------------------------------------------------------------*)
229
          (*----------------------------------------------------------------*)
218
          (* Spiegelt die quadratische Matrix Mat an der Hauptdiagonalen.   *)
230
          (* Spiegelt die quadratische Matrix Mat an der Hauptdiagonalen.   *)
...
...
334
          (*      M x 1 vector, X[0..M-1] fuer trans = wahr                 *)
346
          (*      M x 1 vector, X[0..M-1] fuer trans = wahr                 *)
335
          (*  Y : M x 1 vector, X[0..N-1] fuer trans = falsch               *)
347
          (*  Y : M x 1 vector, X[0..N-1] fuer trans = falsch               *)
336
          (*      N x 1 vector, X[0..M-1] fuer trans = wahr                 *)
348
          (*      N x 1 vector, X[0..M-1] fuer trans = wahr                 *)
337
          (*----------------------------------------------------------------*)
349
          (*----------------------------------------------------------------*)
338
350
339
PROCEDURE CMatVekProd(VAR X   : ARRAY OF LONGCOMPLEX;
351
PROCEDURE CMatVekProd(VAR Y     : ARRAY OF LONGCOMPLEX;
340
                      VAR Mat : ARRAY OF ARRAY OF LONGCOMPLEX;
352
                      VAR A     : ARRAY OF ARRAY OF LONGCOMPLEX;
341
                          Vek : ARRAY OF LONGCOMPLEX;
353
                          X     : ARRAY OF LONGCOMPLEX;
342
                          dim : CARDINAL); (* Dim d. Matrix *)
354
                          M,N   : CARDINAL;
355
                          trans : CHAR);
343
356
344
          (*----------------------------------------------------------------*)
357
          (*----------------------------------------------------------------*)
345
          (* Mulipliziet den komplexen Vektor Vek mit der komplexen Matrix  *)
358
          (* Mulipliziet den komplexen Vektor Vek mit der komplexen Matrix  *)
346
          (* Mat. (X = Mat*Vek)                                             *)
359
          (* Mat. (X = Mat*Vek). Wenn trans =                               *)
360
          (*                                                                *)
361
          (*   Y     : Resultierender Vektor                                *)
362
          (*   A     : Komplexe Matrix der Dimension A[M,N]                 *)
363
          (*   X     : Vektor mit dem Multiplziert werden soll              *)
364
          (*   M,N   : Dimensionen von A                                    *)
365
          (*   trans : Wenn CAP(trans)                                      *)
366
          (*             "N" : Normale Matrix-Vektor-Multiplikation         *)
367
          (*             "T" : Transponiertes A mal Vektor X                *)
368
          (*             "C" : Adjunktes      A mal Vektor X                *)
347
          (*----------------------------------------------------------------*)
369
          (*----------------------------------------------------------------*)
348
370
349
PROCEDURE SvVekProd(VAR Y   : ARRAY OF LONGREAL; (*  ==> *)
371
PROCEDURE SvVekProd(VAR Y   : ARRAY OF LONGREAL; (*  ==> *)
350
                    VAR A   : ARRAY OF LONGREAL; (* <==  SUPERVEKTOR *)
372
                    VAR A   : ARRAY OF LONGREAL; (* <==  SUPERVEKTOR *)
351
                    VAR X   : ARRAY OF LONGREAL; (* <==  *)
373
                    VAR X   : ARRAY OF LONGREAL; (* <==  *)
...
...
617
          (* identical to the 1-Norm (maximal colume sum) in the special    *)
639
          (* identical to the 1-Norm (maximal colume sum) in the special    *)
618
          (* case of a symmetic matrix                                      *)
640
          (* case of a symmetic matrix                                      *)
619
          (*----------------------------------------------------------------*)
641
          (*----------------------------------------------------------------*)
620
642
621
PROCEDURE MatNormL1(VAR A    : ARRAY OF ARRAY OF LONGREAL;
643
PROCEDURE MatNormL1(VAR A    : ARRAY OF ARRAY OF LONGREAL;
622
                        N    : INTEGER;
644
                        M,N  : CARDINAL;
623
                    VAR Norm : LONGREAL);
645
                    VAR Norm : LONGREAL);
624
646
625
         (*-----------------------------------------------------------------*)
647
         (*-----------------------------------------------------------------*)
626
         (* Berechnet die L1 Norm der Matrix A als maximale Zeilensumme der *)
648
         (* Berechnet die L1 Norm der Matrix A als maximale Zeilensumme der *)
627
         (* Absolutwerte.                                                   *)
649
         (* Absolutwerte.                                                   *)
...
...
657
                      dim     : CARDINAL;
679
                      dim     : CARDINAL;
658
                      MaxNorm : BOOLEAN);
680
                      MaxNorm : BOOLEAN);
659
681
660
          (*----------------------------------------------------------------*)
682
          (*----------------------------------------------------------------*)
661
          (* Normiert den Vektor X im Bereich X[1] bis X[dim].              *)
683
          (* Normiert den Vektor X im Bereich X[1] bis X[dim].              *)
662
          (* Wenn MaxNorm = TRUE so, da3 das Maximale Element die Gr"o3e    *)
684
          (* Wenn MaxNorm = TRUE so, da3 das maximale Element die Gr"o3e    *)
663
          (* 1 hat, ansonsten nach der Euklidschen Norm auf 1               *)
685
          (* 1 hat, ansonsten nach der euklidschen Norm auf 1               *)
664
          (*----------------------------------------------------------------*)
686
          (*----------------------------------------------------------------*)
665
687
666
PROCEDURE NormMat(VAR A       : ARRAY OF ARRAY OF LONGREAL;
688
PROCEDURE NormMat(VAR A       : ARRAY OF ARRAY OF LONGREAL;
667
                      dim     : CARDINAL;
689
                      dim     : CARDINAL;
668
                      VekAnz  : CARDINAL;
690
                      VekAnz  : CARDINAL;