MAGMA
1.2.0
MatrixAlgebraonGPUandMulticoreArchitectures
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
transpose.h
Go to the documentation of this file.
1
20
#ifndef _MAGMA_TRANSPOSE_H_
21
#define _MAGMA_TRANSPOSE_H_
22
23
#define magmablas_sgetmo_in( dA, dAT, ldda, m, n ) \
24
dAT = dA; \
25
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
26
magmablas_sinplace_transpose( dAT, ldda, ldda ); \
27
} else { \
28
cublasStatus status = cublasAlloc( (m)*(n), sizeof(float), (void**)&dAT); \
29
if (status != CUBLAS_STATUS_SUCCESS) \
30
return -7; \
31
magmablas_stranspose2( dAT, ldda, dA, ldda, m, n ); \
32
}
33
34
#define magmablas_sgetmo_out( dA, dAT, ldda, m, n ) \
35
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
36
magmablas_sinplace_transpose( dAT, ldda, ldda ); \
37
} else { \
38
magmablas_stranspose2( dA, ldda, dAT, ldda, n, m ); \
39
cublasFree(dAT); \
40
}
41
42
#define magmablas_dgetmo_in( dA, dAT, ldda, m, n ) \
43
dAT = dA; \
44
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
45
magmablas_dinplace_transpose( dAT, ldda, ldda ); \
46
} else { \
47
cublasStatus status = cublasAlloc( (m)*(n), sizeof(double), (void**)&dAT); \
48
if (status != CUBLAS_STATUS_SUCCESS) \
49
return -7; \
50
magmablas_dtranspose2( dAT, ldda, dA, ldda, m, n ); \
51
}
52
53
#define magmablas_dgetmo_out( dA, dAT, ldda, m, n ) \
54
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
55
magmablas_dinplace_transpose( dAT, ldda, ldda ); \
56
} else { \
57
magmablas_dtranspose2( dA, ldda, dAT, ldda, n, m ); \
58
cublasFree(dAT); \
59
}
60
61
#define magmablas_cgetmo_in( dA, dAT, ldda, m, n ) \
62
dAT = dA; \
63
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
64
magmablas_cinplace_transpose( dAT, ldda, ldda ); \
65
} else { \
66
cublasStatus status = cublasAlloc( (m)*(n), sizeof(cuFloatComplex), (void**)&dAT); \
67
if (status != CUBLAS_STATUS_SUCCESS) \
68
return -7; \
69
magmablas_ctranspose2( dAT, ldda, dA, ldda, m, n ); \
70
}
71
72
#define magmablas_cgetmo_out( dA, dAT, ldda, m, n ) \
73
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
74
magmablas_cinplace_transpose( dAT, ldda, ldda ); \
75
} else { \
76
magmablas_ctranspose2( dA, ldda, dAT, ldda, n, m ); \
77
cublasFree(dAT); \
78
}
79
80
#define magmablas_zgetmo_in( dA, dAT, ldda, m, n ) \
81
dAT = dA; \
82
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
83
magmablas_zinplace_transpose( dAT, ldda, ldda ); \
84
} else { \
85
cublasStatus status = cublasAlloc( (m)*(n), sizeof(cuDoubleComplex), (void**)&dAT); \
86
if (status != CUBLAS_STATUS_SUCCESS) \
87
return -7; \
88
magmablas_ztranspose2( dAT, ldda, dA, ldda, m, n ); \
89
}
90
91
#define magmablas_zgetmo_out( dA, dAT, ldda, m, n ) \
92
if ( ( (m) == (n) ) && ( (m)%32 == 0) && ( (ldda)%32 == 0) ){ \
93
magmablas_zinplace_transpose( dAT, ldda, ldda ); \
94
} else { \
95
magmablas_ztranspose2( dA, ldda, dAT, ldda, n, m ); \
96
cublasFree(dAT); \
97
}
98
99
#endif
/* _MAGMA_TRANSPOSE_H_ */
magma-1.2.0
control
transpose.h
Generated on Mon May 21 2012 16:42:19 for MAGMA by
1.8.1