PLASMA
2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
Main Page
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
stile.c
Go to the documentation of this file.
1
16
#include "
common.h
"
17
#include "
auxiliary.h
"
18
#include "
tile.h
"
19
20
/***************************************************************************/
55
int
PLASMA_sLapack_to_Tile
(
float
*Af77,
int
LDA,
PLASMA_desc
*
A
)
56
{
57
PLASMA_desc
descA = *
A
;
58
plasma_context_t
*
plasma
;
59
PLASMA_sequence
*sequence = NULL;
60
PLASMA_request
request;
61
int
status;
62
63
plasma =
plasma_context_self
();
64
if
(plasma == NULL) {
65
plasma_fatal_error
(
"PLASMA_sLapack_to_Tile"
,
"PLASMA not initialized"
);
66
return
PLASMA_ERR_NOT_INITIALIZED
;
67
}
68
/* Check descriptor for correctness */
69
if
(
plasma_desc_check
(&descA) !=
PLASMA_SUCCESS
) {
70
plasma_error
(
"PLASMA_sLapack_to_Tile"
,
"invalid descriptor"
);
71
return
PLASMA_ERR_ILLEGAL_VALUE
;
72
}
73
plasma_sequence_create
(plasma, &sequence);
74
plasma_parallel_call_5
(
75
plasma_pslapack_to_tile
,
76
float
*, Af77,
77
int
, LDA,
78
PLASMA_desc
, descA,
79
PLASMA_sequence
*, sequence,
80
PLASMA_request
*, &request);
81
plasma_dynamic_sync
();
82
status = sequence->
status
;
83
plasma_sequence_destroy
(plasma, sequence);
84
return
status;
85
}
86
87
/***************************************************************************/
128
int
PLASMA_sLapack_to_Tile_Async
(
float
*Af77,
int
LDA,
PLASMA_desc
*
A
,
129
PLASMA_sequence
*sequence,
PLASMA_request
*request)
130
{
131
PLASMA_desc
descA = *
A
;
132
plasma_context_t
*
plasma
;
133
134
plasma =
plasma_context_self
();
135
if
(plasma == NULL) {
136
plasma_fatal_error
(
"PLASMA_sLapack_to_Tile"
,
"PLASMA not initialized"
);
137
return
PLASMA_ERR_NOT_INITIALIZED
;
138
}
139
/* Check descriptor for correctness */
140
if
(
plasma_desc_check
(&descA) !=
PLASMA_SUCCESS
) {
141
plasma_error
(
"PLASMA_sLapack_to_Tile"
,
"invalid descriptor"
);
142
return
PLASMA_ERR_ILLEGAL_VALUE
;
143
}
144
145
plasma_parallel_call_5
(
146
plasma_pslapack_to_tile
,
147
float
*, Af77,
148
int
, LDA,
149
PLASMA_desc
, descA,
150
PLASMA_sequence
*, sequence,
151
PLASMA_request
*, request);
152
153
return
PLASMA_SUCCESS
;
154
}
155
156
/***************************************************************************/
191
int
PLASMA_sTile_to_Lapack
(
PLASMA_desc
*
A
,
float
*Af77,
int
LDA)
192
{
193
PLASMA_desc
descA = *
A
;
194
plasma_context_t
*
plasma
;
195
PLASMA_sequence
*sequence = NULL;
196
PLASMA_request
request;
197
int
status;
198
199
plasma =
plasma_context_self
();
200
if
(plasma == NULL) {
201
plasma_fatal_error
(
"PLASMA_sTile_to_Lapack"
,
"PLASMA not initialized"
);
202
return
PLASMA_ERR_NOT_INITIALIZED
;
203
}
204
/* Check descriptor for correctness */
205
if
(
plasma_desc_check
(&descA) !=
PLASMA_SUCCESS
) {
206
plasma_error
(
"PLASMA_sTile_to_Lapack"
,
"invalid descriptor"
);
207
return
PLASMA_ERR_ILLEGAL_VALUE
;
208
}
209
plasma_sequence_create
(plasma, &sequence);
210
plasma_static_call_5
(
211
plasma_pstile_to_lapack
,
212
PLASMA_desc
, descA,
213
float
*, Af77,
214
int
, LDA,
215
PLASMA_sequence
*, sequence,
216
PLASMA_request
*, &request);
217
plasma_dynamic_sync
();
218
status = sequence->
status
;
219
plasma_sequence_destroy
(plasma, sequence);
220
return
status;
221
}
222
223
/***************************************************************************/
264
int
PLASMA_sTile_to_Lapack_Async
(
PLASMA_desc
*
A
,
float
*Af77,
int
LDA,
265
PLASMA_sequence
*sequence,
PLASMA_request
*request)
266
{
267
PLASMA_desc
descA = *
A
;
268
plasma_context_t
*
plasma
;
269
270
plasma =
plasma_context_self
();
271
if
(plasma == NULL) {
272
plasma_fatal_error
(
"PLASMA_sTile_to_Lapack"
,
"PLASMA not initialized"
);
273
return
PLASMA_ERR_NOT_INITIALIZED
;
274
}
275
/* Check descriptor for correctness */
276
if
(
plasma_desc_check
(&descA) !=
PLASMA_SUCCESS
) {
277
plasma_error
(
"PLASMA_sTile_to_Lapack"
,
"invalid descriptor"
);
278
return
PLASMA_ERR_ILLEGAL_VALUE
;
279
}
280
281
plasma_static_call_5
(
282
plasma_pstile_to_lapack
,
283
PLASMA_desc
, descA,
284
float
*, Af77,
285
int
, LDA,
286
PLASMA_sequence
*, sequence,
287
PLASMA_request
*, request);
288
289
return
PLASMA_SUCCESS
;
290
}
plasma_2.4.5
control
stile.c
Generated on Mon Jul 9 2012 12:44:59 for PLASMA by
1.8.1