Switch to unified view

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     *)