--- 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.