PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
tile.c
Go to the documentation of this file.
1 
14 #include "common.h"
15 #include "auxiliary.h"
16 #include "tile.h"
17 
18 /***************************************************************************/
41 int PLASMA_Lapack_to_Tile(void *Af77, int LDA, PLASMA_desc *A)
42 {
43  PLASMA_desc descA = *A;
45  PLASMA_sequence *sequence = NULL;
46  PLASMA_request request;
47  int status;
48 
49  plasma = plasma_context_self();
50  if (plasma == NULL) {
51  plasma_fatal_error("PLASMA_Lapack_to_Tile", "PLASMA not initialized");
53  }
54  /* Check descriptor for correctness */
55  if (plasma_desc_check(&descA) != PLASMA_SUCCESS) {
56  plasma_error("PLASMA_Lapack_to_Tile", "invalid descriptor");
58  }
59  plasma_sequence_create(plasma, &sequence);
60  switch( A->dtyp ) {
61  case PlasmaRealFloat:
64  float*, Af77,
65  int, LDA,
66  PLASMA_desc, descA,
67  PLASMA_sequence*, sequence,
68  PLASMA_request*, &request);
69  break;
70  case PlasmaRealDouble:
73  double*, Af77,
74  int, LDA,
75  PLASMA_desc, descA,
76  PLASMA_sequence*, sequence,
77  PLASMA_request*, &request);
78  break;
79  case PlasmaComplexFloat:
82  PLASMA_Complex32_t*, Af77,
83  int, LDA,
84  PLASMA_desc, descA,
85  PLASMA_sequence*, sequence,
86  PLASMA_request*, &request);
87  break;
91  PLASMA_Complex64_t*, Af77,
92  int, LDA,
93  PLASMA_desc, descA,
94  PLASMA_sequence*, sequence,
95  PLASMA_request*, &request);
96  break;
97  default:
98  plasma_error("PLASMA_Lapack_to_Tile", "Type unknown");
99  }
101  status = sequence->status;
102  plasma_sequence_destroy(plasma, sequence);
103  return status;
104 }
105 
106 /***************************************************************************/
129 int PLASMA_Tile_to_Lapack(PLASMA_desc *A, void *Af77, int LDA)
130 {
131  PLASMA_desc descA = *A;
133  PLASMA_sequence *sequence = NULL;
134  PLASMA_request request;
135  int status;
136 
137  plasma = plasma_context_self();
138  if (plasma == NULL) {
139  plasma_fatal_error("PLASMA_Tile_to_Lapack", "PLASMA not initialized");
141  }
142  /* Check descriptor for correctness */
143  if (plasma_desc_check(&descA) != PLASMA_SUCCESS) {
144  plasma_error("PLASMA_Tile_to_Lapack", "invalid descriptor");
146  }
147  plasma_sequence_create(plasma, &sequence);
148  switch( A->dtyp ) {
149  case PlasmaRealFloat:
152  PLASMA_desc, descA,
153  float*, Af77,
154  int, LDA,
155  PLASMA_sequence*, sequence,
156  PLASMA_request*, &request);
157  break;
158  case PlasmaRealDouble:
161  PLASMA_desc, descA,
162  double*, Af77,
163  int, LDA,
164  PLASMA_sequence*, sequence,
165  PLASMA_request*, &request);
166  break;
167  case PlasmaComplexFloat:
170  PLASMA_desc, descA,
171  PLASMA_Complex32_t*, Af77,
172  int, LDA,
173  PLASMA_sequence*, sequence,
174  PLASMA_request*, &request);
175  break;
176  case PlasmaComplexDouble:
179  PLASMA_desc, descA,
180  PLASMA_Complex64_t*, Af77,
181  int, LDA,
182  PLASMA_sequence*, sequence,
183  PLASMA_request*, &request);
184  break;
185  default:
186  plasma_error("PLASMA_Tile_to_Lapack", "Type unknown");
187  }
189  status = sequence->status;
190  plasma_sequence_destroy(plasma, sequence);
191  return status;
192 }