1 /*
2
3 Copyright (C) 2014, The University of Texas at Austin
4
5 This file is part of libflame and is available under the 3-Clause
6 BSD license, which can be found in the LICENSE file at the top-level
7 directory, or at http://opensource.org/licenses/BSD-3-Clause
8
9 */
10
11 #include "FLAME.h"
12
13 //
14 // LAPACK-level
15 //
16
FLA_Cntl_chol_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_chol_t * sub_chol,fla_herk_t * sub_herk,fla_trsm_t * sub_trsm,fla_gemm_t * sub_gemm)17 fla_chol_t* FLA_Cntl_chol_obj_create( FLA_Matrix_type matrix_type,
18 int variant,
19 fla_blocksize_t* blocksize,
20 fla_chol_t* sub_chol,
21 fla_herk_t* sub_herk,
22 fla_trsm_t* sub_trsm,
23 fla_gemm_t* sub_gemm )
24 {
25 fla_chol_t* cntl;
26
27 cntl = ( fla_chol_t* ) FLA_malloc( sizeof(fla_chol_t) );
28
29 cntl->matrix_type = matrix_type;
30 cntl->variant = variant;
31 cntl->blocksize = blocksize;
32 cntl->sub_chol = sub_chol;
33 cntl->sub_herk = sub_herk;
34 cntl->sub_trsm = sub_trsm;
35 cntl->sub_gemm = sub_gemm;
36
37 return cntl;
38 }
39
FLA_Cntl_lu_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_lu_t * sub_lu,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_gemm_t * sub_gemm3,fla_trsm_t * sub_trsm1,fla_trsm_t * sub_trsm2,fla_appiv_t * sub_appiv1,fla_appiv_t * sub_appiv2)40 fla_lu_t* FLA_Cntl_lu_obj_create( FLA_Matrix_type matrix_type,
41 int variant,
42 fla_blocksize_t* blocksize,
43 fla_lu_t* sub_lu,
44 fla_gemm_t* sub_gemm1,
45 fla_gemm_t* sub_gemm2,
46 fla_gemm_t* sub_gemm3,
47 fla_trsm_t* sub_trsm1,
48 fla_trsm_t* sub_trsm2,
49 fla_appiv_t* sub_appiv1,
50 fla_appiv_t* sub_appiv2 )
51 {
52 fla_lu_t* cntl;
53
54 cntl = ( fla_lu_t* ) FLA_malloc( sizeof(fla_lu_t) );
55
56 cntl->matrix_type = matrix_type;
57 cntl->variant = variant;
58 cntl->blocksize = blocksize;
59 cntl->sub_lu = sub_lu;
60 cntl->sub_gemm1 = sub_gemm1;
61 cntl->sub_gemm2 = sub_gemm2;
62 cntl->sub_gemm3 = sub_gemm3;
63 cntl->sub_trsm1 = sub_trsm1;
64 cntl->sub_trsm2 = sub_trsm2;
65 cntl->sub_appiv1 = sub_appiv1;
66 cntl->sub_appiv2 = sub_appiv2;
67
68 return cntl;
69 }
70
71
FLA_Cntl_appiv_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_appiv_t * sub_appiv)72 fla_appiv_t* FLA_Cntl_appiv_obj_create( FLA_Matrix_type matrix_type,
73 int variant,
74 fla_blocksize_t* blocksize,
75 fla_appiv_t* sub_appiv )
76 {
77 fla_appiv_t* cntl;
78
79 cntl = ( fla_appiv_t* ) FLA_malloc( sizeof(fla_appiv_t) );
80
81 cntl->matrix_type = matrix_type;
82 cntl->variant = variant;
83 cntl->blocksize = blocksize;
84 cntl->sub_appiv = sub_appiv;
85
86 return cntl;
87 }
88
89
FLA_Cntl_qrut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_qrut_t * sub_qrut,fla_apqut_t * sub_apqut)90 fla_qrut_t* FLA_Cntl_qrut_obj_create( FLA_Matrix_type matrix_type,
91 int variant,
92 fla_blocksize_t* blocksize,
93 fla_qrut_t* sub_qrut,
94 fla_apqut_t* sub_apqut )
95 {
96 fla_qrut_t* cntl;
97
98 cntl = ( fla_qrut_t* ) FLA_malloc( sizeof(fla_qrut_t) );
99
100 cntl->matrix_type = matrix_type;
101 cntl->variant = variant;
102 cntl->blocksize = blocksize;
103 cntl->sub_qrut = sub_qrut;
104 cntl->sub_apqut = sub_apqut;
105
106 return cntl;
107 }
108
FLA_Cntl_qr2ut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_qr2ut_t * sub_qr2ut,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_trsm_t * sub_trsm,fla_copy_t * sub_copy,fla_axpy_t * sub_axpy)109 fla_qr2ut_t* FLA_Cntl_qr2ut_obj_create( FLA_Matrix_type matrix_type,
110 int variant,
111 fla_blocksize_t* blocksize,
112 fla_qr2ut_t* sub_qr2ut,
113 fla_gemm_t* sub_gemm1,
114 fla_gemm_t* sub_gemm2,
115 fla_trsm_t* sub_trsm,
116 fla_copy_t* sub_copy,
117 fla_axpy_t* sub_axpy )
118 {
119 fla_qr2ut_t* cntl;
120
121 cntl = ( fla_qr2ut_t* ) FLA_malloc( sizeof(fla_qr2ut_t) );
122
123 cntl->matrix_type = matrix_type;
124 cntl->variant = variant;
125 cntl->blocksize = blocksize;
126 cntl->sub_qr2ut = sub_qr2ut;
127 cntl->sub_gemm1 = sub_gemm1;
128 cntl->sub_gemm2 = sub_gemm2;
129 cntl->sub_trsm = sub_trsm ;
130 cntl->sub_copy = sub_copy ;
131 cntl->sub_axpy = sub_axpy ;
132
133 return cntl;
134 }
135
FLA_Cntl_qrutinc_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_qrut_t * sub_qrut,fla_apqut_t * sub_apqut,fla_qr2ut_t * sub_qr2ut,fla_apq2ut_t * sub_apq2ut)136 fla_qrutinc_t* FLA_Cntl_qrutinc_obj_create( FLA_Matrix_type matrix_type,
137 int variant,
138 fla_blocksize_t* blocksize,
139 fla_qrut_t* sub_qrut,
140 fla_apqut_t* sub_apqut,
141 fla_qr2ut_t* sub_qr2ut,
142 fla_apq2ut_t* sub_apq2ut )
143 {
144 fla_qrutinc_t* cntl;
145
146 cntl = ( fla_qrutinc_t* ) FLA_malloc( sizeof(fla_qrutinc_t) );
147
148 cntl->matrix_type = matrix_type;
149 cntl->variant = variant;
150 cntl->blocksize = blocksize;
151 cntl->sub_qrut = sub_qrut;
152 cntl->sub_apqut = sub_apqut;
153 cntl->sub_qr2ut = sub_qr2ut;
154 cntl->sub_apq2ut = sub_apq2ut;
155
156 return cntl;
157 }
158
FLA_Cntl_caqrutinc_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_caqr2ut_t * sub_caqr2ut,fla_apcaq2ut_t * sub_apcaq2ut)159 fla_caqrutinc_t* FLA_Cntl_caqrutinc_obj_create( FLA_Matrix_type matrix_type,
160 int variant,
161 fla_blocksize_t* blocksize,
162 fla_caqr2ut_t* sub_caqr2ut,
163 fla_apcaq2ut_t* sub_apcaq2ut )
164 {
165 fla_caqrutinc_t* cntl;
166
167 cntl = ( fla_caqrutinc_t* ) FLA_malloc( sizeof(fla_caqrutinc_t) );
168
169 cntl->matrix_type = matrix_type;
170 cntl->variant = variant;
171 cntl->blocksize = blocksize;
172 cntl->sub_caqr2ut = sub_caqr2ut;
173 cntl->sub_apcaq2ut = sub_apcaq2ut;
174
175 return cntl;
176 }
177
FLA_Cntl_lqut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_lqut_t * sub_lqut,fla_apqut_t * sub_apqut)178 fla_lqut_t* FLA_Cntl_lqut_obj_create( FLA_Matrix_type matrix_type,
179 int variant,
180 fla_blocksize_t* blocksize,
181 fla_lqut_t* sub_lqut,
182 fla_apqut_t* sub_apqut )
183 {
184 fla_lqut_t* cntl;
185
186 cntl = ( fla_lqut_t* ) FLA_malloc( sizeof(fla_lqut_t) );
187
188 cntl->matrix_type = matrix_type;
189 cntl->variant = variant;
190 cntl->blocksize = blocksize;
191 cntl->sub_lqut = sub_lqut;
192 cntl->sub_apqut = sub_apqut;
193
194 return cntl;
195 }
196
FLA_Cntl_caqr2ut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_caqr2ut_t * sub_caqr2ut,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_trmm_t * sub_trmm1,fla_trmm_t * sub_trmm2,fla_trsm_t * sub_trsm,fla_axpy_t * sub_axpy1,fla_axpy_t * sub_axpy2,fla_axpy_t * sub_axpy3,fla_copy_t * sub_copy)197 fla_caqr2ut_t* FLA_Cntl_caqr2ut_obj_create( FLA_Matrix_type matrix_type,
198 int variant,
199 fla_blocksize_t* blocksize,
200 fla_caqr2ut_t* sub_caqr2ut,
201 fla_gemm_t* sub_gemm1,
202 fla_gemm_t* sub_gemm2,
203 fla_trmm_t* sub_trmm1,
204 fla_trmm_t* sub_trmm2,
205 fla_trsm_t* sub_trsm,
206 fla_axpy_t* sub_axpy1,
207 fla_axpy_t* sub_axpy2,
208 fla_axpy_t* sub_axpy3,
209 fla_copy_t* sub_copy )
210 {
211 fla_caqr2ut_t* cntl;
212
213 cntl = ( fla_caqr2ut_t* ) FLA_malloc( sizeof(fla_caqr2ut_t) );
214
215 cntl->matrix_type = matrix_type;
216 cntl->variant = variant;
217 cntl->blocksize = blocksize;
218 cntl->sub_caqr2ut = sub_caqr2ut;
219 cntl->sub_gemm1 = sub_gemm1;
220 cntl->sub_gemm2 = sub_gemm2;
221 cntl->sub_trmm1 = sub_trmm1;
222 cntl->sub_trmm2 = sub_trmm2;
223 cntl->sub_trsm = sub_trsm ;
224 cntl->sub_axpy1 = sub_axpy1;
225 cntl->sub_axpy2 = sub_axpy2;
226 cntl->sub_axpy3 = sub_axpy3;
227 cntl->sub_copy = sub_copy ;
228
229 return cntl;
230 }
231
FLA_Cntl_hessut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize)232 fla_hessut_t* FLA_Cntl_hessut_obj_create( FLA_Matrix_type matrix_type,
233 int variant,
234 fla_blocksize_t* blocksize )
235 {
236 fla_hessut_t* cntl;
237
238 cntl = ( fla_hessut_t* ) FLA_malloc( sizeof(fla_hessut_t) );
239
240 cntl->matrix_type = matrix_type;
241 cntl->variant = variant;
242 cntl->blocksize = blocksize;
243
244 return cntl;
245 }
246
FLA_Cntl_tridiagut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize)247 fla_tridiagut_t* FLA_Cntl_tridiagut_obj_create( FLA_Matrix_type matrix_type,
248 int variant,
249 fla_blocksize_t* blocksize )
250 {
251 fla_tridiagut_t* cntl;
252
253 cntl = ( fla_tridiagut_t* ) FLA_malloc( sizeof(fla_tridiagut_t) );
254
255 cntl->matrix_type = matrix_type;
256 cntl->variant = variant;
257 cntl->blocksize = blocksize;
258
259 return cntl;
260 }
261
FLA_Cntl_bidiagut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize)262 fla_bidiagut_t* FLA_Cntl_bidiagut_obj_create( FLA_Matrix_type matrix_type,
263 int variant,
264 fla_blocksize_t* blocksize )
265 {
266 fla_bidiagut_t* cntl;
267
268 cntl = ( fla_bidiagut_t* ) FLA_malloc( sizeof(fla_bidiagut_t) );
269
270 cntl->matrix_type = matrix_type;
271 cntl->variant = variant;
272 cntl->blocksize = blocksize;
273
274 return cntl;
275 }
276
FLA_Cntl_trinv_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_trinv_t * sub_trinv,fla_trmm_t * sub_trmm,fla_trsm_t * sub_trsm1,fla_trsm_t * sub_trsm2,fla_gemm_t * sub_gemm)277 fla_trinv_t* FLA_Cntl_trinv_obj_create( FLA_Matrix_type matrix_type,
278 int variant,
279 fla_blocksize_t* blocksize,
280 fla_trinv_t* sub_trinv,
281 fla_trmm_t* sub_trmm,
282 fla_trsm_t* sub_trsm1,
283 fla_trsm_t* sub_trsm2,
284 fla_gemm_t* sub_gemm )
285 {
286 fla_trinv_t* cntl;
287
288 cntl = ( fla_trinv_t* ) FLA_malloc( sizeof(fla_trinv_t) );
289
290 cntl->matrix_type = matrix_type;
291 cntl->variant = variant;
292 cntl->blocksize = blocksize;
293 cntl->sub_trinv = sub_trinv;
294 cntl->sub_trmm = sub_trmm;
295 cntl->sub_trsm1 = sub_trsm1;
296 cntl->sub_trsm2 = sub_trsm2;
297 cntl->sub_gemm = sub_gemm;
298
299 return cntl;
300 }
301
FLA_Cntl_ttmm_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_ttmm_t * sub_ttmm,fla_herk_t * sub_herk,fla_trmm_t * sub_trmm,fla_gemm_t * sub_gemm)302 fla_ttmm_t* FLA_Cntl_ttmm_obj_create( FLA_Matrix_type matrix_type,
303 int variant,
304 fla_blocksize_t* blocksize,
305 fla_ttmm_t* sub_ttmm,
306 fla_herk_t* sub_herk,
307 fla_trmm_t* sub_trmm,
308 fla_gemm_t* sub_gemm )
309 {
310 fla_ttmm_t* cntl;
311
312 cntl = ( fla_ttmm_t* ) FLA_malloc( sizeof(fla_ttmm_t) );
313
314 cntl->matrix_type = matrix_type;
315 cntl->variant = variant;
316 cntl->blocksize = blocksize;
317 cntl->sub_ttmm = sub_ttmm;
318 cntl->sub_herk = sub_herk;
319 cntl->sub_trmm = sub_trmm;
320 cntl->sub_gemm = sub_gemm;
321
322 return cntl;
323 }
324
FLA_Cntl_uddateut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_uddateut_t * sub_uddateut,fla_apqudut_t * sub_apqudut)325 fla_uddateut_t* FLA_Cntl_uddateut_obj_create( FLA_Matrix_type matrix_type,
326 int variant,
327 fla_blocksize_t* blocksize,
328 fla_uddateut_t* sub_uddateut,
329 fla_apqudut_t* sub_apqudut )
330 {
331 fla_uddateut_t* cntl;
332
333 cntl = ( fla_uddateut_t* ) FLA_malloc( sizeof(fla_uddateut_t) );
334
335 cntl->matrix_type = matrix_type;
336 cntl->variant = variant;
337 cntl->blocksize = blocksize;
338 cntl->sub_uddateut = sub_uddateut;
339 cntl->sub_apqudut = sub_apqudut;
340
341 return cntl;
342 }
343
FLA_Cntl_uddateutinc_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_uddateut_t * sub_uddateut,fla_apqudut_t * sub_apqudut)344 fla_uddateutinc_t* FLA_Cntl_uddateutinc_obj_create( FLA_Matrix_type matrix_type,
345 int variant,
346 fla_blocksize_t* blocksize,
347 fla_uddateut_t* sub_uddateut,
348 fla_apqudut_t* sub_apqudut )
349 {
350 fla_uddateutinc_t* cntl;
351
352 cntl = ( fla_uddateutinc_t* ) FLA_malloc( sizeof(fla_uddateutinc_t) );
353
354 cntl->matrix_type = matrix_type;
355 cntl->variant = variant;
356 cntl->blocksize = blocksize;
357 cntl->sub_uddateut = sub_uddateut;
358 cntl->sub_apqudut = sub_apqudut;
359
360 return cntl;
361 }
362
FLA_Cntl_apqudutinc_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_apqudut_t * sub_apqudut)363 fla_apqudutinc_t* FLA_Cntl_apqudutinc_obj_create( FLA_Matrix_type matrix_type,
364 int variant,
365 fla_blocksize_t* blocksize,
366 fla_apqudut_t* sub_apqudut )
367 {
368 fla_apqudutinc_t* cntl;
369
370 cntl = ( fla_apqudutinc_t* ) FLA_malloc( sizeof(fla_apqudutinc_t) );
371
372 cntl->matrix_type = matrix_type;
373 cntl->variant = variant;
374 cntl->blocksize = blocksize;
375 cntl->sub_apqudut = sub_apqudut;
376
377 return cntl;
378 }
379
FLA_Cntl_sylv_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_sylv_t * sub_sylv1,fla_sylv_t * sub_sylv2,fla_sylv_t * sub_sylv3,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_gemm_t * sub_gemm3,fla_gemm_t * sub_gemm4,fla_gemm_t * sub_gemm5,fla_gemm_t * sub_gemm6,fla_gemm_t * sub_gemm7,fla_gemm_t * sub_gemm8)380 fla_sylv_t* FLA_Cntl_sylv_obj_create( FLA_Matrix_type matrix_type,
381 int variant,
382 fla_blocksize_t* blocksize,
383 fla_sylv_t* sub_sylv1,
384 fla_sylv_t* sub_sylv2,
385 fla_sylv_t* sub_sylv3,
386 fla_gemm_t* sub_gemm1,
387 fla_gemm_t* sub_gemm2,
388 fla_gemm_t* sub_gemm3,
389 fla_gemm_t* sub_gemm4,
390 fla_gemm_t* sub_gemm5,
391 fla_gemm_t* sub_gemm6,
392 fla_gemm_t* sub_gemm7,
393 fla_gemm_t* sub_gemm8 )
394 {
395 fla_sylv_t* cntl;
396
397 cntl = ( fla_sylv_t* ) FLA_malloc( sizeof(fla_sylv_t) );
398
399 cntl->matrix_type = matrix_type;
400 cntl->variant = variant;
401 cntl->blocksize = blocksize;
402 cntl->sub_sylv1 = sub_sylv1;
403 cntl->sub_sylv2 = sub_sylv2;
404 cntl->sub_sylv3 = sub_sylv3;
405 cntl->sub_gemm1 = sub_gemm1;
406 cntl->sub_gemm2 = sub_gemm2;
407 cntl->sub_gemm3 = sub_gemm3;
408 cntl->sub_gemm4 = sub_gemm4;
409 cntl->sub_gemm5 = sub_gemm5;
410 cntl->sub_gemm6 = sub_gemm6;
411 cntl->sub_gemm7 = sub_gemm7;
412 cntl->sub_gemm8 = sub_gemm8;
413
414 return cntl;
415 }
416
FLA_Cntl_lyap_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_scal_t * sub_scal,fla_lyap_t * sub_lyap,fla_sylv_t * sub_sylv,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_hemm_t * sub_hemm,fla_her2k_t * sub_her2k)417 fla_lyap_t* FLA_Cntl_lyap_obj_create( FLA_Matrix_type matrix_type,
418 int variant,
419 fla_blocksize_t* blocksize,
420 fla_scal_t* sub_scal,
421 fla_lyap_t* sub_lyap,
422 fla_sylv_t* sub_sylv,
423 fla_gemm_t* sub_gemm1,
424 fla_gemm_t* sub_gemm2,
425 fla_hemm_t* sub_hemm,
426 fla_her2k_t* sub_her2k )
427 {
428 fla_lyap_t* cntl;
429
430 cntl = ( fla_lyap_t* ) FLA_malloc( sizeof(fla_lyap_t) );
431
432 cntl->matrix_type = matrix_type;
433 cntl->variant = variant;
434 cntl->blocksize = blocksize;
435 cntl->sub_scal = sub_scal;
436 cntl->sub_lyap = sub_lyap;
437 cntl->sub_sylv = sub_sylv;
438 cntl->sub_gemm1 = sub_gemm1;
439 cntl->sub_gemm2 = sub_gemm2;
440 cntl->sub_hemm = sub_hemm;
441 cntl->sub_her2k = sub_her2k;
442
443 return cntl;
444 }
445
FLA_Cntl_spdinv_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_chol_t * sub_chol,fla_trinv_t * sub_trinv,fla_ttmm_t * sub_ttmm)446 fla_spdinv_t* FLA_Cntl_spdinv_obj_create( FLA_Matrix_type matrix_type,
447 int variant,
448 fla_blocksize_t* blocksize,
449 fla_chol_t* sub_chol,
450 fla_trinv_t* sub_trinv,
451 fla_ttmm_t* sub_ttmm )
452 {
453 fla_spdinv_t* cntl;
454
455 cntl = ( fla_spdinv_t* ) FLA_malloc( sizeof(fla_spdinv_t) );
456
457 cntl->matrix_type = matrix_type;
458 cntl->variant = variant;
459 cntl->blocksize = blocksize;
460 cntl->sub_chol = sub_chol;
461 cntl->sub_trinv = sub_trinv;
462 cntl->sub_ttmm = sub_ttmm;
463
464 return cntl;
465 }
466
FLA_Cntl_apqut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_apqut_t * sub_apqut,fla_trmm_t * sub_trmm1,fla_trmm_t * sub_trmm2,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_trsm_t * sub_trsm,fla_copyt_t * sub_copyt,fla_axpyt_t * sub_axpyt)467 fla_apqut_t* FLA_Cntl_apqut_obj_create( FLA_Matrix_type matrix_type,
468 int variant,
469 fla_blocksize_t* blocksize,
470 fla_apqut_t* sub_apqut,
471 fla_trmm_t* sub_trmm1,
472 fla_trmm_t* sub_trmm2,
473 fla_gemm_t* sub_gemm1,
474 fla_gemm_t* sub_gemm2,
475 fla_trsm_t* sub_trsm,
476 fla_copyt_t* sub_copyt,
477 fla_axpyt_t* sub_axpyt )
478 {
479 fla_apqut_t* cntl;
480
481 cntl = ( fla_apqut_t* ) FLA_malloc( sizeof(fla_apqut_t) );
482
483 cntl->matrix_type = matrix_type;
484 cntl->variant = variant;
485 cntl->blocksize = blocksize;
486 cntl->sub_apqut = sub_apqut;
487 cntl->sub_trmm1 = sub_trmm1;
488 cntl->sub_trmm2 = sub_trmm2;
489 cntl->sub_gemm1 = sub_gemm1;
490 cntl->sub_gemm2 = sub_gemm2;
491 cntl->sub_trsm = sub_trsm;
492 cntl->sub_copyt = sub_copyt;
493 cntl->sub_axpyt = sub_axpyt;
494
495 return cntl;
496 }
497
FLA_Cntl_apq2ut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_apq2ut_t * sub_apq2ut,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_trsm_t * sub_trsm,fla_copyt_t * sub_copyt,fla_axpyt_t * sub_axpyt)498 fla_apq2ut_t* FLA_Cntl_apq2ut_obj_create( FLA_Matrix_type matrix_type,
499 int variant,
500 fla_blocksize_t* blocksize,
501 fla_apq2ut_t* sub_apq2ut,
502 fla_gemm_t* sub_gemm1,
503 fla_gemm_t* sub_gemm2,
504 fla_trsm_t* sub_trsm,
505 fla_copyt_t* sub_copyt,
506 fla_axpyt_t* sub_axpyt )
507 {
508 fla_apq2ut_t* cntl;
509
510 cntl = ( fla_apq2ut_t* ) FLA_malloc( sizeof(fla_apq2ut_t) );
511
512 cntl->matrix_type = matrix_type;
513 cntl->variant = variant;
514 cntl->blocksize = blocksize;
515 cntl->sub_apq2ut = sub_apq2ut;
516 cntl->sub_gemm1 = sub_gemm1;
517 cntl->sub_gemm2 = sub_gemm2;
518 cntl->sub_trsm = sub_trsm;
519 cntl->sub_copyt = sub_copyt;
520 cntl->sub_axpyt = sub_axpyt;
521
522 return cntl;
523 }
524
FLA_Cntl_apcaq2ut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_apcaq2ut_t * sub_apcaq2ut,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_trmm_t * sub_trmm1,fla_trmm_t * sub_trmm2,fla_trsm_t * sub_trsm,fla_axpy_t * sub_axpy1,fla_axpy_t * sub_axpy2,fla_axpy_t * sub_axpy3,fla_copy_t * sub_copy)525 fla_apcaq2ut_t* FLA_Cntl_apcaq2ut_obj_create( FLA_Matrix_type matrix_type,
526 int variant,
527 fla_blocksize_t* blocksize,
528 fla_apcaq2ut_t* sub_apcaq2ut,
529 fla_gemm_t* sub_gemm1,
530 fla_gemm_t* sub_gemm2,
531 fla_trmm_t* sub_trmm1,
532 fla_trmm_t* sub_trmm2,
533 fla_trsm_t* sub_trsm,
534 fla_axpy_t* sub_axpy1,
535 fla_axpy_t* sub_axpy2,
536 fla_axpy_t* sub_axpy3,
537 fla_copy_t* sub_copy )
538 {
539 fla_apcaq2ut_t* cntl;
540
541 cntl = ( fla_apcaq2ut_t* ) FLA_malloc( sizeof(fla_apcaq2ut_t) );
542
543 cntl->matrix_type = matrix_type;
544 cntl->variant = variant;
545 cntl->blocksize = blocksize;
546 cntl->sub_apcaq2ut = sub_apcaq2ut;
547 cntl->sub_gemm1 = sub_gemm1;
548 cntl->sub_gemm2 = sub_gemm2;
549 cntl->sub_trmm1 = sub_trmm1;
550 cntl->sub_trmm2 = sub_trmm2;
551 cntl->sub_trsm = sub_trsm;
552 cntl->sub_axpy1 = sub_axpy1;
553 cntl->sub_axpy2 = sub_axpy2;
554 cntl->sub_axpy3 = sub_axpy3;
555 cntl->sub_copy = sub_copy;
556
557 return cntl;
558 }
559
560
FLA_Cntl_apqutinc_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_apqut_t * sub_apqut,fla_apq2ut_t * sub_apq2ut)561 fla_apqutinc_t* FLA_Cntl_apqutinc_obj_create( FLA_Matrix_type matrix_type,
562 int variant,
563 fla_blocksize_t* blocksize,
564 fla_apqut_t* sub_apqut,
565 fla_apq2ut_t* sub_apq2ut )
566 {
567 fla_apqutinc_t* cntl;
568
569 cntl = ( fla_apqutinc_t* ) FLA_malloc( sizeof(fla_apqutinc_t) );
570
571 cntl->matrix_type = matrix_type;
572 cntl->variant = variant;
573 cntl->blocksize = blocksize;
574 cntl->sub_apqut = sub_apqut;
575 cntl->sub_apq2ut = sub_apq2ut;
576
577 return cntl;
578 }
579
FLA_Cntl_apcaqutinc_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_apcaq2ut_t * sub_apcaq2ut)580 fla_apcaqutinc_t* FLA_Cntl_apcaqutinc_obj_create( FLA_Matrix_type matrix_type,
581 int variant,
582 fla_blocksize_t* blocksize,
583 fla_apcaq2ut_t* sub_apcaq2ut )
584 {
585 fla_apcaqutinc_t* cntl;
586
587 cntl = ( fla_apcaqutinc_t* ) FLA_malloc( sizeof(fla_apcaqutinc_t) );
588
589 cntl->matrix_type = matrix_type;
590 cntl->variant = variant;
591 cntl->blocksize = blocksize;
592 cntl->sub_apcaq2ut = sub_apcaq2ut;
593
594 return cntl;
595 }
596
FLA_Cntl_apqudut_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_apqudut_t * sub_apqudut,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_gemm_t * sub_gemm3,fla_gemm_t * sub_gemm4,fla_trsm_t * sub_trsm,fla_copyt_t * sub_copyt,fla_axpyt_t * sub_axpyt)597 fla_apqudut_t* FLA_Cntl_apqudut_obj_create( FLA_Matrix_type matrix_type,
598 int variant,
599 fla_blocksize_t* blocksize,
600 fla_apqudut_t* sub_apqudut,
601 fla_gemm_t* sub_gemm1,
602 fla_gemm_t* sub_gemm2,
603 fla_gemm_t* sub_gemm3,
604 fla_gemm_t* sub_gemm4,
605 fla_trsm_t* sub_trsm,
606 fla_copyt_t* sub_copyt,
607 fla_axpyt_t* sub_axpyt )
608 {
609 fla_apqudut_t* cntl;
610
611 cntl = ( fla_apqudut_t* ) FLA_malloc( sizeof(fla_apqudut_t) );
612
613 cntl->matrix_type = matrix_type;
614 cntl->variant = variant;
615 cntl->blocksize = blocksize;
616 cntl->sub_apqudut = sub_apqudut;
617 cntl->sub_gemm1 = sub_gemm1;
618 cntl->sub_gemm2 = sub_gemm2;
619 cntl->sub_gemm3 = sub_gemm3;
620 cntl->sub_gemm4 = sub_gemm4;
621 cntl->sub_trsm = sub_trsm;
622 cntl->sub_copyt = sub_copyt;
623 cntl->sub_axpyt = sub_axpyt;
624
625 return cntl;
626 }
627
FLA_Cntl_eig_gest_obj_create(FLA_Matrix_type matrix_type,int variant,fla_blocksize_t * blocksize,fla_eig_gest_t * sub_eig_gest,fla_axpy_t * sub_axpy1,fla_axpy_t * sub_axpy2,fla_gemm_t * sub_gemm1,fla_gemm_t * sub_gemm2,fla_gemm_t * sub_gemm3,fla_hemm_t * sub_hemm,fla_her2k_t * sub_her2k,fla_trmm_t * sub_trmm1,fla_trmm_t * sub_trmm2,fla_trsm_t * sub_trsm1,fla_trsm_t * sub_trsm2)628 fla_eig_gest_t* FLA_Cntl_eig_gest_obj_create( FLA_Matrix_type matrix_type,
629 int variant,
630 fla_blocksize_t* blocksize,
631 fla_eig_gest_t* sub_eig_gest,
632 fla_axpy_t* sub_axpy1,
633 fla_axpy_t* sub_axpy2,
634 fla_gemm_t* sub_gemm1,
635 fla_gemm_t* sub_gemm2,
636 fla_gemm_t* sub_gemm3,
637 fla_hemm_t* sub_hemm,
638 fla_her2k_t* sub_her2k,
639 fla_trmm_t* sub_trmm1,
640 fla_trmm_t* sub_trmm2,
641 fla_trsm_t* sub_trsm1,
642 fla_trsm_t* sub_trsm2 )
643 {
644 fla_eig_gest_t* cntl;
645
646 cntl = ( fla_eig_gest_t* ) FLA_malloc( sizeof(fla_eig_gest_t) );
647
648 cntl->matrix_type = matrix_type;
649 cntl->variant = variant;
650 cntl->blocksize = blocksize;
651 cntl->sub_eig_gest = sub_eig_gest;
652 cntl->sub_axpy1 = sub_axpy1;
653 cntl->sub_axpy2 = sub_axpy2;
654 cntl->sub_gemm1 = sub_gemm1;
655 cntl->sub_gemm2 = sub_gemm2;
656 cntl->sub_gemm3 = sub_gemm3;
657 cntl->sub_hemm = sub_hemm;
658 cntl->sub_her2k = sub_her2k;
659 cntl->sub_trmm1 = sub_trmm1;
660 cntl->sub_trmm2 = sub_trmm2;
661 cntl->sub_trsm1 = sub_trsm1;
662 cntl->sub_trsm2 = sub_trsm2;
663
664 return cntl;
665 }
666
667