|
a/LibDBlasLxF77.def.m2pp |
|
b/LibDBlasLxF77.def.m2pp |
|
... |
|
... |
44 |
(* - Testen *)
|
44 |
(* - Testen *)
|
45 |
(*------------------------------------------------------------------------*)
|
45 |
(*------------------------------------------------------------------------*)
|
46 |
(* Licence : GNU Lesser General Public License (LGPL) *)
|
46 |
(* Licence : GNU Lesser General Public License (LGPL) *)
|
47 |
(*------------------------------------------------------------------------*)
|
47 |
(*------------------------------------------------------------------------*)
|
48 |
|
48 |
|
49 |
(* $Id: LibDBlasLxF77.def.m2pp,v 1.4 2018/09/12 13:20:49 mriedl Exp mriedl $ *)
|
49 |
(* $Id: LibDBlasLxF77.def.m2pp,v 1.5 2019/02/01 22:24:03 mriedl Exp mriedl $ *)
|
50 |
|
50 |
|
51 |
FROM LibDBlasL1F77 IMPORT CHAR1,INTEGER4,REAL4,DOUBLEPRECISION,DOUBLECOMPLEX;
|
51 |
FROM LibDBlasL1F77 IMPORT CHAR1,INTEGER4,REAL4,REAL8,COMPLEX16;
|
52 |
|
52 |
|
53 |
<* IF (__XDS__) THEN *>
|
53 |
<* IF (__XDS__) THEN *>
|
54 |
CONST Version = "LibDBlasLxF77 for XDS Modula-2";
|
54 |
CONST Version = "LibDBlasLxF77 for XDS Modula-2";
|
55 |
<* END *>
|
55 |
<* END *>
|
56 |
<* IF (__GM2__) THEN *>
|
56 |
<* IF (__GM2__) THEN *>
|
|
... |
|
... |
60 |
CONST Version = "LibDBlasLxF77 for GMD Mocka";
|
60 |
CONST Version = "LibDBlasLxF77 for GMD Mocka";
|
61 |
<* END *>
|
61 |
<* END *>
|
62 |
|
62 |
|
63 |
PROCEDURE dgemv_(VAR Trans : CHAR1;
|
63 |
PROCEDURE dgemv_(VAR Trans : CHAR1;
|
64 |
VAR M,N : INTEGER4;
|
64 |
VAR M,N : INTEGER4;
|
65 |
VAR Alpha : DOUBLEPRECISION;
|
65 |
VAR Alpha : REAL8;
|
66 |
VAR A : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
66 |
VAR A : (* ARRAY OF ARRAY OF *) REAL8;
|
67 |
VAR lda : INTEGER4;
|
67 |
VAR lda : INTEGER4;
|
68 |
VAR X : (* ARRAY OF *) DOUBLEPRECISION;
|
68 |
VAR X : (* ARRAY OF *) REAL8;
|
69 |
VAR IncX : INTEGER4;
|
69 |
VAR IncX : INTEGER4;
|
70 |
VAR Beta : DOUBLEPRECISION;
|
70 |
VAR Beta : REAL8;
|
71 |
VAR Y : (* ARRAY OF *) DOUBLEPRECISION;
|
71 |
VAR Y : (* ARRAY OF *) REAL8;
|
72 |
VAR IncY : INTEGER4);
|
72 |
VAR IncY : INTEGER4);
|
73 |
|
73 |
|
74 |
(*----------------------------------------------------------------*)
|
74 |
(*----------------------------------------------------------------*)
|
75 |
(* Aufruf der Fortran Version von BLAS2 subroutine dgemv *)
|
75 |
(* Aufruf der Fortran Version von BLAS2 subroutine dgemv *)
|
76 |
(* *)
|
76 |
(* *)
|
|
... |
|
... |
83 |
(* and A is an M by N matrix. *)
|
83 |
(* and A is an M by N matrix. *)
|
84 |
(*----------------------------------------------------------------*)
|
84 |
(*----------------------------------------------------------------*)
|
85 |
|
85 |
|
86 |
PROCEDURE zgemv_(VAR Trans : CHAR1;
|
86 |
PROCEDURE zgemv_(VAR Trans : CHAR1;
|
87 |
VAR M,N : INTEGER4;
|
87 |
VAR M,N : INTEGER4;
|
88 |
VAR Alpha : DOUBLECOMPLEX;
|
88 |
VAR Alpha : COMPLEX16;
|
89 |
VAR A : (* ARRAY OF ARRAY OF *) DOUBLECOMPLEX;
|
89 |
VAR A : (* ARRAY OF ARRAY OF *) COMPLEX16;
|
90 |
VAR lda : INTEGER4;
|
90 |
VAR lda : INTEGER4;
|
91 |
VAR X : (* ARRAY OF *) DOUBLECOMPLEX;
|
91 |
VAR X : (* ARRAY OF *) COMPLEX16;
|
92 |
VAR IncX : INTEGER4;
|
92 |
VAR IncX : INTEGER4;
|
93 |
VAR Beta : DOUBLECOMPLEX;
|
93 |
VAR Beta : COMPLEX16;
|
94 |
VAR Y : (* ARRAY OF *) DOUBLECOMPLEX;
|
94 |
VAR Y : (* ARRAY OF *) COMPLEX16;
|
95 |
VAR IncY : INTEGER4);
|
95 |
VAR IncY : INTEGER4);
|
96 |
|
96 |
|
97 |
(*----------------------------------------------------------------*)
|
97 |
(*----------------------------------------------------------------*)
|
98 |
(* Aufruf der Fortran Version von BLAS2 subroutine zgemv *)
|
98 |
(* Aufruf der Fortran Version von BLAS2 subroutine zgemv *)
|
99 |
(* *)
|
99 |
(* *)
|
|
... |
|
... |
125 |
(*----------------------------------------------------------------*)
|
125 |
(*----------------------------------------------------------------*)
|
126 |
|
126 |
|
127 |
PROCEDURE dgemm_(VAR TA : CHAR1;
|
127 |
PROCEDURE dgemm_(VAR TA : CHAR1;
|
128 |
VAR TB : CHAR1;
|
128 |
VAR TB : CHAR1;
|
129 |
VAR M,N,K : INTEGER4;
|
129 |
VAR M,N,K : INTEGER4;
|
130 |
VAR Alpha : DOUBLEPRECISION;
|
130 |
VAR Alpha : REAL8;
|
131 |
VAR A : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
131 |
VAR A : (* ARRAY OF ARRAY OF *) REAL8;
|
132 |
VAR lda : INTEGER4;
|
132 |
VAR lda : INTEGER4;
|
133 |
VAR B : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
133 |
VAR B : (* ARRAY OF ARRAY OF *) REAL8;
|
134 |
VAR ldb : INTEGER4;
|
134 |
VAR ldb : INTEGER4;
|
135 |
VAR Beta : DOUBLEPRECISION;
|
135 |
VAR Beta : REAL8;
|
136 |
VAR C : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
136 |
VAR C : (* ARRAY OF ARRAY OF *) REAL8;
|
137 |
VAR ldc : INTEGER4);
|
137 |
VAR ldc : INTEGER4);
|
138 |
|
138 |
|
139 |
(*----------------------------------------------------------------*)
|
139 |
(*----------------------------------------------------------------*)
|
140 |
(* Matrix Matrix Multiplikatione / matrix matrix multiplication, *)
|
140 |
(* Matrix Matrix Multiplikatione / matrix matrix multiplication, *)
|
141 |
(* double precision version, see LibDBlas.def dgemm for details *)
|
141 |
(* double precision version, see LibDBlas.def dgemm for details *)
|
|
... |
|
... |
148 |
(*----------------------------------------------------------------*)
|
148 |
(*----------------------------------------------------------------*)
|
149 |
|
149 |
|
150 |
PROCEDURE dgemmomp(VAR TA : CHAR1;
|
150 |
PROCEDURE dgemmomp(VAR TA : CHAR1;
|
151 |
VAR TB : CHAR1;
|
151 |
VAR TB : CHAR1;
|
152 |
VAR M,N,K : INTEGER4;
|
152 |
VAR M,N,K : INTEGER4;
|
153 |
VAR Alpha : DOUBLEPRECISION;
|
153 |
VAR Alpha : REAL8;
|
154 |
VAR A : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
154 |
VAR A : (* ARRAY OF ARRAY OF *) REAL8;
|
155 |
VAR lda : INTEGER4;
|
155 |
VAR lda : INTEGER4;
|
156 |
VAR B : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
156 |
VAR B : (* ARRAY OF ARRAY OF *) REAL8;
|
157 |
VAR ldb : INTEGER4;
|
157 |
VAR ldb : INTEGER4;
|
158 |
VAR Beta : DOUBLEPRECISION;
|
158 |
VAR Beta : REAL8;
|
159 |
VAR C : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
159 |
VAR C : (* ARRAY OF ARRAY OF *) REAL8;
|
160 |
VAR ldc : INTEGER4);
|
160 |
VAR ldc : INTEGER4);
|
161 |
|
161 |
|
162 |
(*----------------------------------------------------------------*)
|
162 |
(*----------------------------------------------------------------*)
|
163 |
(* Matrix Matrix Multiplikation / matrix matrix multiplication, *)
|
163 |
(* Matrix Matrix Multiplikation / matrix matrix multiplication, *)
|
164 |
(* double precision version, see LibDBlas.def dgemm for details *)
|
164 |
(* double precision version, see LibDBlas.def dgemm for details *)
|
|
... |
|
... |
180 |
(*----------------------------------------------------------------*)
|
180 |
(*----------------------------------------------------------------*)
|
181 |
|
181 |
|
182 |
PROCEDURE dgemmomp2(VAR TA : CHAR1;
|
182 |
PROCEDURE dgemmomp2(VAR TA : CHAR1;
|
183 |
VAR TB : CHAR1;
|
183 |
VAR TB : CHAR1;
|
184 |
VAR M,N,K : INTEGER4;
|
184 |
VAR M,N,K : INTEGER4;
|
185 |
VAR Alpha : DOUBLEPRECISION;
|
185 |
VAR Alpha : REAL8;
|
186 |
VAR A : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
186 |
VAR A : (* ARRAY OF ARRAY OF *) REAL8;
|
187 |
VAR lda : INTEGER4;
|
187 |
VAR lda : INTEGER4;
|
188 |
VAR B : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
188 |
VAR B : (* ARRAY OF ARRAY OF *) REAL8;
|
189 |
VAR ldb : INTEGER4;
|
189 |
VAR ldb : INTEGER4;
|
190 |
VAR Beta : DOUBLEPRECISION;
|
190 |
VAR Beta : REAL8;
|
191 |
VAR C : (* ARRAY OF ARRAY OF *) DOUBLEPRECISION;
|
191 |
VAR C : (* ARRAY OF ARRAY OF *) REAL8;
|
192 |
VAR ldc : INTEGER4);
|
192 |
VAR ldc : INTEGER4);
|
193 |
(*----------------------------------------------------------------*)
|
193 |
(*----------------------------------------------------------------*)
|
194 |
(* Another OMP parallel version of dgemm (experimental) *)
|
194 |
(* Another OMP parallel version of dgemm (experimental) *)
|
195 |
(*----------------------------------------------------------------*)
|
195 |
(*----------------------------------------------------------------*)
|
196 |
|
196 |
|
197 |
PROCEDURE zgemm_(VAR TA : CHAR1;
|
197 |
PROCEDURE zgemm_(VAR TA : CHAR1;
|
198 |
VAR TB : CHAR1;
|
198 |
VAR TB : CHAR1;
|
199 |
VAR M,N,K : INTEGER4;
|
199 |
VAR M,N,K : INTEGER4;
|
200 |
VAR Alpha : DOUBLECOMPLEX;
|
200 |
VAR Alpha : COMPLEX16;
|
201 |
VAR A : (* ARRAY OF ARRAY OF *) DOUBLECOMPLEX;
|
201 |
VAR A : (* ARRAY OF ARRAY OF *) COMPLEX16;
|
202 |
VAR lda : INTEGER4;
|
202 |
VAR lda : INTEGER4;
|
203 |
VAR B : (* ARRAY OF ARRAY OF *) DOUBLECOMPLEX;
|
203 |
VAR B : (* ARRAY OF ARRAY OF *) COMPLEX16;
|
204 |
VAR ldb : INTEGER4;
|
204 |
VAR ldb : INTEGER4;
|
205 |
VAR Beta : DOUBLECOMPLEX;
|
205 |
VAR Beta : COMPLEX16;
|
206 |
VAR C : (* ARRAY OF ARRAY OF *) DOUBLECOMPLEX;
|
206 |
VAR C : (* ARRAY OF ARRAY OF *) COMPLEX16;
|
207 |
VAR ldc : INTEGER4);
|
207 |
VAR ldc : INTEGER4);
|
208 |
|
208 |
|
209 |
(*----------------------------------------------------------------*)
|
209 |
(*----------------------------------------------------------------*)
|
210 |
(* Matrix Matrix Multiplikatione / matrix matrix multiplication, *)
|
210 |
(* Matrix Matrix Multiplikatione / matrix matrix multiplication, *)
|
211 |
(* double complex version, see LibDBlas.def dgemm for details *)
|
211 |
(* double complex version, see LibDBlas.def dgemm for details *)
|