MAGMA  1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
magmasubs.py
Go to the documentation of this file.
1 subs = {
2  'all' : [ ## Special key: Changes are applied to all applicable conversions automatically
3  [None,None]
4  ],
5  'mixed' : [
6  ['zc','ds'],
7  ('ZC','DS'),
8  ('zc','ds'),
9  ('double2','double'),
10  ('float2','float'),
11  ('cuDoubleComplex','double'),
12  ('cuFloatComplex','float'),
13  ('cuCrealf',''),
14  ('cuCimagf',''),
15  ('cuCreal',''),
16  ('cuCimag',''),
17  ('zlange','dlange'),
18  ('zlag2c','dlag2s'),
19  ('ZLAG2C','DLAG2S'),
20  ('clag2z','slag2d'),
21  ('zlat2c','dlat2s'),
22  ('clat2z','slat2d'),
23  ('zlacpy','dlacpy'),
24  ('zclaswp','dslaswp'),
25  ('zgemm','dgemm'),
26  ('zherk','dsyrk'),
27  ('zlansy','dlansy'),
28  ('zaxpy','daxpy'),
29  ('pzgetrf','pdgetrf'),
30  ('pcgetrf','psgetrf'),
31  ('ztrsm','dtrsm'),
32  ('ztrsv','dtrsv'),
33  ('ctrsm','strsm'),
34  ('ctrsv','strsv'),
35  ('CBLAS_SADDR',''),
36  ('zlarnv','dlarnv'),
37  ('zgesv','dgesv'),
38  ('zhemm','dsymm'),
39  ('Zhemm','Dsymm'),
40  ('zhemv','dsymv'),
41  ('Zhemv','Dsymv'),
42  ('zlanhe','dlansy'),
43  ('clanhe','slansy'),
44  ('zlaghe','dlagsy'),
45  ('ztrmm','dtrmm'),
46  ('ctrmm','strmm'),
47  ('zunmqr','dormqr'),
48  ('cuConj',''),
49  ('Conj',''),
50  ('zpotrf','dpotrf'),
51  ('cpotrf','spotrf'),
52  ('pcgeqrf','psgeqrf'),
53  ('pcunmqr','psormqr'),
54  ('pcgelqf','psgelqf'),
55  ('pcunmlq','psormlq'),
56  ('pzgeqrf','pdgeqrf'),
57  ('pzunmqr','pdormqr'),
58  ('pzgelqf','pdgelqf'),
59  ('pzunmlq','pdormlq'),
60  ('MAGMA_ZC','MAGMA_DS'),
61  ('MAGMABLAS_ZC','MAGMABLAS_DS'),
62  ('magma_z','magma_d'),
63  ('magma_czgetrs','magma_sdgetrs'),
64  ('magma_c','magma_s'),
65  ('magmablas_z','magmablas_d'),
66  ('magmablas_c','magmablas_s'),
67  ('cublasZ','cublasD'),
68  ('cublasC','cublasS'),
69  ('MAGMA_Z','MAGMA_D'),
70  ('MAGMA_C','MAGMA_S'),
71  ('cublasIzamax','cublasIdamax'),
72  ('lapackf77_z','lapackf77_d'),
73  ('lapackf77_c','lapackf77_s'),
74  ('blasf77_z','blasf77_d'),
75  ('blasf77_c','blasf77_s'),
76  ('cuComplexFloatToDouble','(double)'),
77  ('cuComplexDoubleToFloat','(float)'),
78  ('cuCabs', 'abs' ),
79  ('cuCabsf','absf'),
80  ('zcaxpy','dsaxpy'),
81  ('magma_get_c','magma_get_s'),
82  ('magma_get_z','magma_get_d'),
83  ('COMPLEX_16','DOUBLE PRECISION'),
84  ('COMPLEX','SINGLE PRECISION'),
85  ('complex','real'),
86  ('#define PRECISION_z', '#define PRECISION_d'),
87  ('#define PRECISION_c', '#define PRECISION_s'),
88  ('#undef PRECISION_z', '#undef PRECISION_d'),
89  ('#undef PRECISION_c', '#undef PRECISION_s'),
90  ],
91  'normal' : [ ## Dictionary is keyed on substitution type
92  ['s','d','c','z'], ## Special Line Indicating type columns
93  ('#define PRECISION_s', '#define PRECISION_d', '#define PRECISION_c', '#define PRECISION_z'),
94  ('#undef PRECISION_s', '#undef PRECISION_d', '#undef PRECISION_c', '#undef PRECISION_z' ),
95  ('#define REAL', '#define REAL', '#define COMPLEX', '#define COMPLEX' ),
96  ('#undef COMPLEX', '#undef COMPLEX', '#undef REAL', '#undef REAL' ),
97  ('#define SINGLE', '#define DOUBLE', '#define SINGLE', '#define DOUBLE' ),
98  ('#undef DOUBLE', '#undef SINGLE', '#undef DOUBLE', '#undef SINGLE' ),
99  ('real', 'double precision', 'complex', 'complex\*16' ),
100  ('real', 'double precision', 'real', 'double precision' ),
101  ('sizeof_real', 'sizeof_double', 'sizeof_complex', 'sizeof_complex_16' ),
102  ('float', 'double', 'cuFloatComplex', 'cuDoubleComplex' ),
103  ('float', 'double', 'PLASMA_Complex32_t', 'PLASMA_Complex64_t' ),
104  ('Workspace_s','Workspace_d','Workspace_c','Workspace_z'),
105  ('workspace_s','workspace_d','workspace_c','workspace_z'),
106  ('lapackf77_s','lapackf77_d','lapackf77_c','lapackf77_z'),
107  ('lapackf77_s','lapackf77_d','lapackf77_s','lapackf77_d'),
108  ('sdot_sub','ddot_sub','cdotu_sub','zdotu_sub'),
109  ('sdot_sub','ddot_sub','cdotc_sub','zdotc_sub'),
110  ('sdot','ddot','cdotc','zdotc'),
111  ('SDOT','DDOT','CDOTC','ZDOTC'),
112  ('blasf77_s','blasf77_d','blasf77_c','blasf77_z'),
113  ('blasf77_s','blasf77_d','blasf77_s','blasf77_d'),
114  ('cublasS','cublasD','cublasC','cublasZ'),
115  ('cublasIsamax','cublasIdamax', 'cublasIcamax','cublasIzamax'),
116  ('cublasIsamax','cublasIdamax', 'cublasIsamax','cublasIdamax'),
117  ('magma_ssqrt','magma_dsqrt', 'magma_ssqrt','magma_dsqrt'),
118  ('cpu_gpu_s','cpu_gpu_d','cpu_gpu_c','cpu_gpu_z'),
119  ('spanel_to_q','dpanel_to_q','cpanel_to_q','zpanel_to_q'),
120  ('sq_to_panel','dq_to_panel','cq_to_panel','zq_to_panel'),
121  ('cblas_sasum','cblas_dasum','cblas_scasum','cblas_dzasum'),
122  ('cblas_snrm2','cblas_dnrm2','cblas_scnrm2','cblas_dznrm2'),
123  ('CORE_sasum','CORE_dasum','CORE_scasum','CORE_dzasum'),
124  ('core_sasum','core_dasum','core_scasum','core_dzasum'),
125  ('','','cuCrealf','cuCreal'),
126  ('','','cuCimagf','cuCimag'),
127  ('slag2d','dlag2s','clag2z','zlag2c'),
128  ('sinplace','dinplace','cinplace','zinplace'),
129  ('spermute','dpermute','cpermute','zpermute'),
130  ('stranspose','dtranspose','ctranspose','ztranspose'),
131  ('shtodt','dhtodt','chtodt','zhtodt'),
132  ('sdtoht','ddtoht','cdtoht','zdtoht'),
133  ('ssplit','dsplit','csplit','zsplit'),
134  ('SSIZE','DSIZE','CSIZE','ZSIZE'),
135  ('scopy','dcopy','ccopy','zcopy'),
136  ('strmv','dtrmv','ctrmv','ztrmv'),
137  ('sgemv','dgemv','cgemv','zgemv'),
138  ('sger','dger','cgeru','zgeru'),
139  ('ssymv','dsymv','csymv','zsymv'),
140  ('sscal','dscal','cscal','zscal'),
141  ('ssyr2k','dsyr2k','cher2k','zher2k'),
142  ('SSYR2K','DSYR2K','CHER2K','ZHER2K'),
143  ('ssyr2k','dsyr2k','csyr2k','zsyr2k'),
144  ('SSYR2K','DSYR2K','CSYR2K','ZSYR2K'),
145  ('sbdt01','dbdt01','cbdt01','zbdt01'),
146  ('sget22','dget22','cget22','zget22'),
147  ('sbdsqr','dbdsqr','cbdsqr','zbdsqr'),
148  ('saxpy','daxpy','caxpy','zaxpy'),
149  ('ssymv','dsymv','chemv','zhemv'),
150  ('SSYMV','DSYMV','CHEMV','ZHEMV'),
151  ('ssymm','dsymm','chemm','zhemm'),
152  ('SSYMM','DSYMM','CHEMM','ZHEMM'),
153  ('ssyrk','dsyrk','cherk','zherk'),
154  ('SSYRK','DSYRK','CHERK','ZHERK'),
155  ('sgesv','dgesv','cgesv','zgesv'),
156  ('sgeqlf','dgeqlf','cgeqlf','zgeqlf'),
157  ('sgelqf','dgelqf','cgelqf','zgelqf'),
158  ('sgebrd','dgebrd','cgebrd','zgebrd'),
159  ('sgehrd','dgehrd','cgehrd','zgehrd'),
160  ('SGEHRD','DGEHRD','CGEHRD','ZGEHRD'),
161  ('sgehd2','dgehd2','cgehd2','zgehd2'),
162  ('sgebd2','dgebd2','cgebd2','zgebd2'),
163  ('SUNGESV','SUNGESV','CUNGESV','CUNGESV'),
164  ('SGESV','SGESV','CGESV','CGESV'),
165  ('SGESV','DGESV','CGESV','ZGESV'),
166  ('sgels','dgels','cgels','zgels'),
167  ('SGELS','DGELS','CGELS','ZGELS'),
168  ('sgeev','dgeev','cgeev','zgeev'),
169  ('SGEEV','DGEEV','CGEEV','ZGEEV'),
170  ('ssyev','dsyev','cheev','zheev'),
171  ('SSYEV','DSYEV','CHEEV','ZHEEV'),
172  ('ssyevd','dsyevd','cheevd','zheevd'),
173  ('SSYEVD','DSYEVD','CHEEVD','ZHEEVD'),
174  ('ssygvd','dsygvd','chegvd','zhegvd'),
175  ('SSYGVD','DSYGVD','CHEGVD','ZHEGVD'),
176  ('ssygst','dsygst','chegst','zhegst'),
177  ('SSYGST','DSYGST','CHEGST','ZHEGST'),
178  ('ssygs2','dsygs2','chegs2','zhegs2'),
179  ('ssterf','dsterf','ssterf','dsterf'),
180  ('ssteqr','dsteqr','csteqr','zsteqr'),
181  ('sstedc','dstedc','cstedc','zstedc'),
182  ('sgemm','dgemm','cgemm','zgemm'),
183  ('SGEMM','DGEMM','CGEMM','ZGEMM'),
184  ('sposv','dposv','cposv','zposv'),
185  ('SPOSV','SPOSV','CPOSV','CPOSV'),
186  ('SPOSV','DPOSV','CPOSV','ZPOSV'),
187  ('ssymm','dsymm','csymm','zsymm'),
188  ('SSYMM','DSYMM','CSYMM','ZSYMM'),
189  ('ssyrk','dsyrk','csyrk','zsyrk'),
190  ('SSYRK','DSYRK','CSYRK','ZSYRK'),
191  ('strmm','dtrmm','ctrmm','ztrmm'),
192  ('STRMM','DTRMM','CTRMM','ZTRMM'),
193  ('strsm','dtrsm','ctrsm','ztrsm'),
194  ('STRSM','DTRSM','CTRSM','ZTRSM'),
195  ('strsv','dtrsv','ctrsv','ztrsv'),
196  ('STRSV','DTRSV','CTRSV','ZTRSV'),
197  ('sgelq2','dgelq2','cgelq2','zgelq2'),
198  ('sgelqf','dgelqf','cgelqf','zgelqf'),
199  ('SGELQF','DGELQF','CGELQF','ZGELQF'),
200  ('SGEBRD','DGEBRD','CGEBRD','ZGEBRD'),
201  ('sgelqs','dgelqs','cgelqs','zgelqs'),
202  ('SGELQS','DGELQS','CGELQS','ZGELQS'),
203  ('sgeqr2','dgeqr2','cgeqr2','zgeqr2'),
204  ('sgeqrf','dgeqrf','cgeqrf','zgeqrf'),
205  ('SGEQRF','DGEQRF','CGEQRF','ZGEQRF'),
206  ('sgeqrs','dgeqrs','cgeqrs','zgeqrs'),
207  ('SGEQRS','DGEQRS','CGEQRS','ZGEQRS'),
208  ('sgetf2','dgetf2','cgetf2','zgetf2'),
209  ('sgetrl','dgetrl','cgetrl','zgetrl'),
210  ('sgessm','dgessm','cgessm','zgessm'),
211  ('ststrf','dtstrf','ctstrf','ztstrf'),
212  ('sssssm','dssssm','cssssm','zssssm'),
213  ('sgetrf','dgetrf','cgetrf','zgetrf'),
214  ('SGETRF','DGETRF','CGETRF','ZGETRF'),
215  ('sgetrs','dgetrs','cgetrs','zgetrs'),
216  ('SGETRS','DGETRS','CGETRS','ZGETRS'),
217  ('slaset','dlaset','claset','zlaset'),
218  ('slascl','dlascl','clascl','zlascl'),
219  ('sgebak','dgebak','cgebak','zgebak'),
220  ('sgebal','dgebal','cgebal','zgebal'),
221  ('sscal','dscal','csscal','zdscal'),
222  ('sscal','dscal','sscal','dscal'),
223  ('shseqr','dhseqr','chseqr','zhseqr'),
224  ('strevc','dtrevc','ctrevc','ztrevc'),
225  ('slacgv','dlacgv','clacgv','zlacgv'),
226  ('slabad','dlabad','slabad','dlabad'),
227  ('isamax','idamax','isamax','idamax'),
228  ('snrm2','dnrm2','scnrm2','dznrm2'),
229  ('slacpy','dlacpy','clacpy','zlacpy'),
230  ('slagsy','dlagsy','claghe','zlaghe'),
231  ('slagsy','dlagsy','clagsy','zlagsy'),
232  ('SLANGE','DLANGE','CLANGE','ZLANGE'),
233  ('SLANSY','DLANSY','CLANHE','ZLANHE'),
234  ('SLANSY','DLANSY','CLANSY','ZLANSY'),
235  ('SLANTR','DLANTR','CLANTR','ZLANTR'),
236  ('slange','dlange','clange','zlange'),
237  ('slansy','dlansy','clanhe','zlanhe'),
238  ('slansy','dlansy','clansy','zlansy'),
239  ('slantr','dlantr','clantr','zlantr'),
240  ('SLARFB','DLARFB','CLARFB','ZLARFB'),
241  ('slarfb','dlarfb','clarfb','zlarfb'),
242  ('slarfg','dlarfg','clarfg','zlarfg'),
243  ('slarfy','dlarfy','clarfy','zlarfy'),
244  ('slarft','dlarft','clarft','zlarft'),
245  ('slarnv','dlarnv','clarnv','zlarnv'),
246  ('slaswp','dlaswp','claswp','zlaswp'),
247  ('sswap','dswap','cswap','zswap'),
248  ('splgsy','dplgsy','cplghe','zplghe'),
249  ('spotrf','dpotrf','cpotrf','zpotrf'),
250  ('SPOTRF','DPOTRF','CPOTRF','ZPOTRF'),
251  ('spotrs','dpotrs','cpotrs','zpotrs'),
252  ('SPOTRS','DPOTRS','CPOTRS','ZPOTRS'),
253  ('sort01','dort01','cunt01','zunt01'),
254  ('sorm2r','dorm2r','cunm2r','zunm2r'),
255  ('sormbr','dormbr','cunmbr','zunmbr'),
256  ('sormr2','dormr2','cunmr2','zunmr2'),
257  ('sorglq','dorglq','cunglq','zunglq'),
258  ('sorghr','dorghr','cunghr','zunghr'),
259  ('SORGHR','DORGHR','CUNGHR','ZUNGHR'),
260  ('orghr', 'orghr', 'unghr', 'unghr'),
261  ('SORGLQ','DORGLQ','CUNGLQ','ZUNGLQ'),
262  ('sorg2r','dorg2r','cung2r','zung2r'),
263  ('sorgqr','dorgqr','cungqr','zungqr'),
264  ('SORGQR','DORGQR','CUNGQR','ZUNGQR'),
265  ('sorgtr','dorgtr','cungtr','zungtr'),
266  ('sorgbr','dorgbr','cungbr','zungbr'),
267  ('sormlq','dormlq','cunmlq','zunmlq'),
268  ('sormql','dormql','cunmql','zunmql'),
269  ('SORMLQ','DORMLQ','CUNMLQ','ZUNMLQ'),
270  ('SORMQL','DORMQL','CUNMQL','ZUNMQL'),
271  ('sormqr','dormqr','cunmqr','zunmqr'),
272  ('SORMQR','DORMQR','CUNMQR','ZUNMQR'),
273  ('sormr2','dormr2','cunmr2','zunmr2'),
274  ('sormtr','dormtr','cunmtr','zunmtr'),
275  ('slamch','dlamch','slamch','dlamch'),
276  ('slarnv','dlarnv','slarnv','dlarnv'),
277  ('slauum','dlauum','clauum','zlauum'),
278  ('spotri','dpotri','cpotri','zpotri'),
279  ('strtri','dtrtri','ctrtri','ztrtri'),
280  ('slatrd','dlatrd','clatrd','zlatrd'),
281  ('SLATRD','DLATRD','CLATRD','ZLATRD'),
282  ('slartg','dlartg','clartg','zlartg'),
283  ('slahr', 'dlahr', 'clahr', 'zlahr'),
284  ('slabrd','dlabrd','clabrd','zlabrd'),
285  ('SLABRD','DLABRD','CLABRD','ZLABRD'),
286  ('stsqrt','dtsqrt','ctsqrt','ztsqrt'),
287  ('sqrt02','dqrt02','cqrt02','zqrt02'),
288  ('ssytrd','dsytrd','chetrd','zhetrd'),
289  ('SSYTRD','DSYTRD','CHETRD','ZHETRD'),
290  ('ssybbd','dsybbd','chebbd','zhebbd'),
291  ('SSYBBD','DSYBBD','CHEBBD','ZHEBBD'),
292  ('ssytd2','dsytd2','chetd2','zhetd2'),
293  ('ssyt21','dsyt21','chet21','zhet21'),
294  ('shst01','dhst01','chst01','zhst01'),
295  ('sstt21','dstt21','cstt21','zstt21'),
296  ('sormtr','dormtr','cunmtr','zunmtr'),
297  ('SORMTR','DORMTR','CUNMTR','ZUNMTR'),
298  ('strsmpl','dtrsmpl','ctrsmpl','ztrsmpl'),
299  ('STRSMPL','DTRSMPL','CTRSMPL','ZTRSMPL'),
300  ('\*\*T','\*\*T','\*\*H','\*\*H'),
301  ('BLAS_s','BLAS_d','BLAS_s','BLAS_d'),
302  ('BLAS_s','BLAS_d','BLAS_c','BLAS_z'),
303  ('BLAS_S','BLAS_D','BLAS_C','BLAS_Z'),
304  ('blas_s','blas_d','blas_c','blas_z'),
305  ('fabsf','fabs','cabsf','cabs'),
306  ('fabsf','fabs','cuCabsf','cuCabs'),
307  ('cblas_is','cblas_id','cblas_ic','cblas_iz'),
308  ('cblas_s','cblas_d','cblas_c','cblas_z'),
309  ('','','CBLAS_SADDR','CBLAS_SADDR'),
310  ('CblasTrans','CblasTrans','CblasConjTrans','CblasConjTrans'),
311  ('MagmaTrans','MagmaTrans','MagmaConjTrans','MagmaConjTrans'),
312  ('REAL','DOUBLE_PRECISION','COMPLEX','COMPLEX_16'),
313  ('symmetric','symmetric','Hermitian','Hermitian'),
314  ('','','conjf','conj'),
315  ('','','cuConjf','cuConj'),
316  ('CORE_S','CORE_D','CORE_C','CORE_Z'),
317  ('CORE_s','CORE_d','CORE_c','CORE_z'),
318  ('CORE_s','CORE_d','CORE_s','CORE_d'),
319  ('core_s','core_d','core_c','core_z'),
320  ('example_s','example_d','example_c','example_z'),
321  ('float','double','float2','double2'),
322  ('float','double','float','double'),
323  ('float','double','cuFloatComplex','cuDoubleComplex'),
324  ('real','real','complex','complex'),
325  ('control_s','control_d','control_c','control_z'),
326  ('compute_s','compute_d','compute_c','compute_z'),
327  ('testing_ds','testing_ds','testing_zc','testing_zc'),
328  ('testing_s','testing_d','testing_c','testing_z'),
329  ('TESTING_S','TESTING_D','TESTING_C','TESTING_Z'),
330  ('stesting','dtesting','ctesting','ztesting'),
331  ('SAUXILIARY','DAUXILIARY','CAUXILIARY','ZAUXILIARY'),
332  ('sauxiliary','dauxiliary','cauxiliary','zauxiliary'),
333  ('scheck','dcheck','ccheck','zcheck'),
334  ('MAGMA_S','MAGMA_D','MAGMA_C','MAGMA_Z'),
335  ('MAGMABLAS_S','MAGMABLAS_D','MAGMABLAS_C','MAGMABLAS_Z'),
336  ('magma_s','magma_d','magma_c','magma_z'),
337  ('magmablas_s','magmablas_d','magmablas_c','magmablas_z'),
338  ('magma_get_s','magma_get_d','magma_get_c','magma_get_z'),
339  ('magmaf_s','magmaf_d','magmaf_c','magmaf_z'),
340  ('ger','ger','gerc','gerc'),
341  ('ger','ger','geru','geru'),
342  ('orgtr','orgtr','ungtr','ungtr'),
343  ('orgbr','orgbr','ungbr','ungbr'),
344  ('ort01','ort01','unt01','unt01'),
345  ('ormqr','ormqr','unmqr','unmqr'),
346  ('ormlq','ormlq','unmlq','unmlq'),
347  ('ormql','ormql','unmql','unmql'),
348  ('ormr2','ormr2','unmr2','unmr2'),
349  ('ormtr','ormtr','unmtr','unmtr'),
350  ('orm2r','orm2r','unm2r','unm2r'),
351  ('ormbr','ormbr','unmbr','unmbr'),
352  ('org2r','org2r','ung2r','ung2r'),
353  ('orgqr','orgqr','ungqr','ungqr'),
354  ('orglq','orglq','unglq','unglq'),
355  ('syev','syev','heev','heev'),
356  ('syevd','syevd','heevd','heevd'),
357  ('symm','symm','hemm','hemm'),
358  ('gemm','gemm','gemm','gemm'),
359  ('symv','symv','hemv','hemv'),
360  ('syrk','syrk','herk','herk'),
361  ('syr2k','syr2k','her2k','her2k'),
362  ('lansy','lansy','lanhe','lanhe'),
363  ('sytd2','sytd2','hetd2','hetd2'),
364  ('sytrd','sytrd','hetrd','hetrd'),
365  ('syt21','syt21','het21','het21'),
366  ('stile','dtile','ctile','ztile'),
367  ('szero','dzero','czero','zzero'),
368  ('sset','dset','cset','zset'),
369  ('SCHED_s','SCHED_d','SCHED_c','SCHED_z'),
370  ('QUARK_Insert_Task_s','QUARK_Insert_Task_d','QUARK_Insert_Task_c','QUARK_Insert_Task_z'),
371  ],
372  'tracing' : [
373  ['plain','tau'],
374  ('(\w+\*?)\s+(\w+)\s*\(([a-z* ,A-Z_0-9]*)\)\s*{\s+(.*)\s*#pragma tracing_start\s+(.*)\s+#pragma tracing_end\s+(.*)\s+}',r'\1 \2(\3){\n\4tau("\2");\5tau();\6}'),
375  ('\.c','.c.tau'),
376  ],
377 };