Switch to side-by-side view

--- a/LibDBlasF77.def.m2pp
+++ b/LibDBlasF77.def.m2pp
@@ -39,7 +39,9 @@
   (*                                                                        *)
   (* Level 3                                                                *)
   (*                                                                        *)
-  (*   dgemm     : matrix matrix multiplication                             *)
+  (*   sgemm     : single precision matrix matrix multiplication            *)
+  (*   dgemm     : double precision matrix matrix multiplication            *)
+  (*   zgemm     : double complex matrix matrix multiplication              *)
   (*                                                                        *)
   (*------------------------------------------------------------------------*)
   (* Last change:                                                           *)
@@ -53,12 +55,13 @@
   (*                  (* ARRAY OF *) DOUBLEPRECISION                        *)
   (* 29.10.17, MRi: Added dgemm                                             *)
   (* 01.11.17, MRi: Added idamin                                            *)
+  (* 23.06.18, MRi: Added zgemm                                             *)
   (*------------------------------------------------------------------------*)
   (* Implementation : Michael Riedl                                         *)
   (* Licence        : GNU Lesser General Public License (LGPL)              *)
   (*------------------------------------------------------------------------*)
 
-  (* $Id: LibDBlasF77.def,v 1.1 2017/11/01 10:50:16 mriedl Exp mriedl $ *)
+  (* $Id: LibDBlasF77.def.m2pp,v 1.1 2018/06/15 08:59:31 mriedl Exp mriedl $ *)
 
 IMPORT LibDBlasL1F77;
 IMPORT LibDBlasL3F77;
@@ -226,7 +229,7 @@
  *)
           (*----------------------------------------------------------------*)
           (* Aufruf der Fortran Version von BLAS3 subroutine sgemm          *)
-          (* ueber Schnittstelle die fuer eine korrekte umsetzung der       *)
+          (* ueber Schnittstelle die fuer eine korrekte Umsetzung der       *)
           (* Parameter sorgt.                                               *)
           (* Durch die Schnittstelle wird auch erreicht dass die Routine    *)
           (* "normal" aufgerufen werden kann wie von Modula-2 her gewoehnt  *)
@@ -253,10 +256,75 @@
  *)
           (*----------------------------------------------------------------*)
           (* Aufruf der Fortran Version von BLAS3 subroutine dgemm          *)
-          (* ueber Schnittstelle die fuer eine korrekte umsetzung der       *)
+          (* ueber Schnittstelle die fuer eine korrekte Umsetzung der       *)
           (* Parameter sorgt.                                               *)
           (* Durch die Schnittstelle wird auch erreicht dass die Routine    *)
           (* "normal" aufgerufen werden kann wie von Modula-2 her gewoehnt  *)
+          (*                                                                *)
+          (* Real matrix matrix multiplication routine                      *)
+          (*                                                                *)
+          (*   TA     : Specifies whether to transpose matrix A             *)
+          (*   TB     : Specifies whether to transpose matrix B             *)
+          (*   M      : Number of rows in matrices A and C                  *)
+          (*   N      : Number of columns in matrices B and C               *)
+          (*   K      : Number of columns in matrix A; number of rows in    *)
+          (*            matrix B                                            *)
+          (*   Alpha  : Scaling factor for the product of matrices A and B  *)
+          (*   A      : Matrix A                                            *)
+          (*   lda    : The size of the first dimention of matrix A, if     *)
+          (*            passing a matrix A[m,n], the value should be m      *)
+          (*   B      : Matrix B                                            *)
+          (*   ldb    : The size of the first dimention of matrix B, if     *)
+          (*            passing a matrix B[m,n], the value should be m      *)
+          (*   Beta   : Scaling factor for matrix C                         *)
+          (*   C      : Resulting matrix C                                  *)
+          (*   ldb    : The size of the first dimention of matrix C, if     *)
+          (*            passing a matrix C[m,n], the value should be m      *)
+          (*----------------------------------------------------------------*)
+
+CONST zgemm = LibDBlasL3F77.zgemm;
+
+(*
+ * PROCEDURE zgemm(    TA    : CHAR1;
+ *                     TB    : CHAR1;
+ *                     M,N,K : INTEGER4;
+ *                     Alpha : DOUBLECOMPLEX;
+ *                 VAR A     : ARRAY OF ARRAY OF DOUBLECOMPLEX;
+ *                     lda   : INTEGER4;
+ *                 VAR B     : ARRAY OF ARRAY OF DOUBLECOMPLEX;
+ *                     ldb   : INTEGER4;
+ *                     Beta  : DOUBLECOMPLEX;
+ *                 VAR C     : ARRAY OF ARRAY OF DOUBLECOMPLEX;
+ *                     ldc   : INTEGER4);
+ *)
+          (*----------------------------------------------------------------*)
+          (* Aufruf der Fortran Version von BLAS3 subroutine zgemm          *)
+          (* ueber Schnittstelle die fuer eine korrekte Umsetzung der       *)
+          (* Parameter sorgt.                                               *)
+          (* Durch die Schnittstelle wird auch erreicht dass die Routine    *)
+          (* "normal" aufgerufen werden kann wie von Modula-2 her gewoehnt  *)
+          (*                                                                *)
+          (* Complex matrix matrix multiplication routine                   *)
+          (*                                                                *)
+          (*   TA    : Specifies whether to transpose matrix A (option "T") *)
+          (*           or not (option "N") or use the complex conjugate of  *)
+          (*           the transpose of A (option "T", op(A) = conj(A'))    *)
+          (*   TB    : Same as TA for matrix B                              *)
+          (*   M     : Number of rows in matrices A and C                   *)
+          (*   N     : Number of columns in matrices B and C                *)
+          (*   K     : Number of columns in matrix A; number of rows in     *)
+          (*           matrix B                                             *)
+          (*   Alpha : Scaling factor for the product of matrices A and B   *)
+          (*   A     : Matrix A                                             *)
+          (*   lda   : The size of the first dimention of matrix A, if      *)
+          (*           passing a matrix A[m,n], the value should be m       *)
+          (*   B     : Matrix B                                             *)
+          (*   ldb   : The size of the first dimention of matrix B, if      *)
+          (*           passing a matrix B[m,n], the value should be m       *)
+          (*   Beta  : Scaling factor for matrix C                          *)
+          (*   C     : Resulting matrix C                                   *)
+          (*   ldb   : The size of the first dimention of matrix C, if      *)
+          (*           passing a matrix C[m,n], the value should be m       *)
           (*----------------------------------------------------------------*)
 
 END LibDBlasF77.