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 
12 //
13 // LAPACK-level
14 //
15 
16 struct fla_chol_s
17 {
18 	FLA_Matrix_type    matrix_type;
19 	int                variant;
20 	fla_blocksize_t*   blocksize;
21 	struct fla_chol_s* sub_chol;
22 	struct fla_herk_s* sub_herk;
23 	struct fla_trsm_s* sub_trsm;
24 	struct fla_gemm_s* sub_gemm;
25 };
26 typedef struct fla_chol_s fla_chol_t;
27 
28 
29 struct fla_ttmm_s
30 {
31 	FLA_Matrix_type    matrix_type;
32 	int                variant;
33 	fla_blocksize_t*   blocksize;
34 	struct fla_ttmm_s* sub_ttmm;
35 	struct fla_herk_s* sub_herk;
36 	struct fla_trmm_s* sub_trmm;
37 	struct fla_gemm_s* sub_gemm;
38 };
39 typedef struct fla_ttmm_s fla_ttmm_t;
40 
41 
42 struct fla_appiv_s
43 {
44 	FLA_Matrix_type     matrix_type;
45 	int                 variant;
46 	fla_blocksize_t*    blocksize;
47 	struct fla_appiv_s* sub_appiv;
48 };
49 typedef struct fla_appiv_s fla_appiv_t;
50 
51 
52 struct fla_lu_s
53 {
54 	FLA_Matrix_type     matrix_type;
55 	int                 variant;
56 	fla_blocksize_t*    blocksize;
57 	struct fla_lu_s*    sub_lu;
58 	struct fla_gemm_s*  sub_gemm1;
59 	struct fla_gemm_s*  sub_gemm2;
60 	struct fla_gemm_s*  sub_gemm3;
61 	struct fla_trsm_s*  sub_trsm1;
62 	struct fla_trsm_s*  sub_trsm2;
63 	struct fla_appiv_s* sub_appiv1;
64 	struct fla_appiv_s* sub_appiv2;
65 };
66 typedef struct fla_lu_s fla_lu_t;
67 
68 
69 struct fla_qr_ut_s
70 {
71 	FLA_Matrix_type     matrix_type;
72 	int                 variant;
73 	fla_blocksize_t*    blocksize;
74 	struct fla_qr_ut_s* sub_qrut;
75 	struct fla_apqut_s* sub_apqut;
76 };
77 typedef struct fla_qr_ut_s fla_qrut_t;
78 
79 
80 struct fla_qr2_ut_s
81 {
82 	FLA_Matrix_type        matrix_type;
83 	int                    variant;
84 	fla_blocksize_t*       blocksize;
85 	struct fla_qr2_ut_s*   sub_qr2ut;
86 	struct fla_gemm_s*     sub_gemm1;
87 	struct fla_gemm_s*     sub_gemm2;
88 	struct fla_trsm_s*     sub_trsm;
89 	struct fla_copy_s*     sub_copy;
90 	struct fla_axpy_s*     sub_axpy;
91 };
92 typedef struct fla_qr2_ut_s fla_qr2ut_t;
93 
94 
95 struct fla_lq_ut_s
96 {
97 	FLA_Matrix_type     matrix_type;
98 	int                 variant;
99 	fla_blocksize_t*    blocksize;
100 	struct fla_lq_ut_s* sub_lqut;
101 	struct fla_apqut_s* sub_apqut;
102 };
103 typedef struct fla_lq_ut_s fla_lqut_t;
104 
105 struct fla_caqr2ut_s
106 {
107 	FLA_Matrix_type        matrix_type;
108 	int                    variant;
109 	fla_blocksize_t*       blocksize;
110 	struct fla_caqr2ut_s*  sub_caqr2ut;
111 	struct fla_gemm_s*     sub_gemm1;
112 	struct fla_gemm_s*     sub_gemm2;
113 	struct fla_trmm_s*     sub_trmm1;
114 	struct fla_trmm_s*     sub_trmm2;
115 	struct fla_trsm_s*     sub_trsm;
116 	struct fla_axpy_s*     sub_axpy1;
117 	struct fla_axpy_s*     sub_axpy2;
118 	struct fla_axpy_s*     sub_axpy3;
119 	struct fla_copy_s*     sub_copy;
120 };
121 typedef struct fla_caqr2ut_s fla_caqr2ut_t;
122 
123 
124 struct fla_hess_ut_s
125 {
126 	FLA_Matrix_type       matrix_type;
127 	int                   variant;
128 	fla_blocksize_t*      blocksize;
129 };
130 typedef struct fla_hess_ut_s fla_hessut_t;
131 
132 struct fla_tridiag_ut_s
133 {
134 	FLA_Matrix_type       matrix_type;
135 	int                   variant;
136 	fla_blocksize_t*      blocksize;
137 };
138 typedef struct fla_tridiag_ut_s fla_tridiagut_t;
139 
140 struct fla_bidiag_ut_s
141 {
142 	FLA_Matrix_type       matrix_type;
143 	int                   variant;
144 	fla_blocksize_t*      blocksize;
145 };
146 typedef struct fla_bidiag_ut_s fla_bidiagut_t;
147 
148 struct fla_trinv_s
149 {
150 	FLA_Matrix_type     matrix_type;
151 	int                 variant;
152 	fla_blocksize_t*    blocksize;
153 	struct fla_trinv_s* sub_trinv;
154 	struct fla_gemm_s*  sub_gemm;
155 	struct fla_trmm_s*  sub_trmm;
156 	struct fla_trsm_s*  sub_trsm1;
157 	struct fla_trsm_s*  sub_trsm2;
158 };
159 typedef struct fla_trinv_s fla_trinv_t;
160 
161 
162 struct fla_sylv_s
163 {
164 	FLA_Matrix_type     matrix_type;
165 	int                 variant;
166 	fla_blocksize_t*    blocksize;
167 	struct fla_sylv_s*  sub_sylv1;
168 	struct fla_sylv_s*  sub_sylv2;
169 	struct fla_sylv_s*  sub_sylv3;
170 	struct fla_gemm_s*  sub_gemm1;
171 	struct fla_gemm_s*  sub_gemm2;
172 	struct fla_gemm_s*  sub_gemm3;
173 	struct fla_gemm_s*  sub_gemm4;
174 	struct fla_gemm_s*  sub_gemm5;
175 	struct fla_gemm_s*  sub_gemm6;
176 	struct fla_gemm_s*  sub_gemm7;
177 	struct fla_gemm_s*  sub_gemm8;
178 };
179 typedef struct fla_sylv_s fla_sylv_t;
180 
181 
182 struct fla_lyap_s
183 {
184 	FLA_Matrix_type     matrix_type;
185 	int                 variant;
186 	fla_blocksize_t*    blocksize;
187 	struct fla_scal_s*  sub_scal;
188 	struct fla_lyap_s*  sub_lyap;
189 	struct fla_sylv_s*  sub_sylv;
190 	struct fla_gemm_s*  sub_gemm1;
191 	struct fla_gemm_s*  sub_gemm2;
192 	struct fla_hemm_s*  sub_hemm;
193 	struct fla_her2k_s* sub_her2k;
194 };
195 typedef struct fla_lyap_s fla_lyap_t;
196 
197 
198 struct fla_spdinv_s
199 {
200 	FLA_Matrix_type     matrix_type;
201 	int                 variant;
202 	fla_blocksize_t*    blocksize;
203 	struct fla_chol_s*  sub_chol;
204 	struct fla_trinv_s* sub_trinv;
205 	struct fla_ttmm_s*  sub_ttmm;
206 };
207 typedef struct fla_spdinv_s fla_spdinv_t;
208 
209 
210 struct fla_apqut_s
211 {
212 	FLA_Matrix_type      matrix_type;
213 	int                  variant;
214 	fla_blocksize_t*     blocksize;
215 	struct fla_apqut_s*  sub_apqut;
216 	struct fla_trmm_s*   sub_trmm1;
217 	struct fla_trmm_s*   sub_trmm2;
218 	struct fla_gemm_s*   sub_gemm1;
219 	struct fla_gemm_s*   sub_gemm2;
220 	struct fla_trsm_s*   sub_trsm;
221 	struct fla_copyt_s*  sub_copyt;
222 	struct fla_axpyt_s*  sub_axpyt;
223 };
224 typedef struct fla_apqut_s fla_apqut_t;
225 
226 
227 struct fla_apq2ut_s
228 {
229 	FLA_Matrix_type       matrix_type;
230 	int                   variant;
231 	fla_blocksize_t*      blocksize;
232 	struct fla_apq2ut_s*  sub_apq2ut;
233 	struct fla_gemm_s*    sub_gemm1;
234 	struct fla_gemm_s*    sub_gemm2;
235 	struct fla_trsm_s*    sub_trsm;
236 	struct fla_copyt_s*   sub_copyt;
237 	struct fla_axpyt_s*   sub_axpyt;
238 };
239 typedef struct fla_apq2ut_s fla_apq2ut_t;
240 
241 
242 struct fla_caqrutinc_s
243 {
244 	FLA_Matrix_type        matrix_type;
245 	int                    variant;
246 	fla_blocksize_t*       blocksize;
247 	struct fla_caqr2ut_s*  sub_caqr2ut;
248 	struct fla_apcaq2ut_s* sub_apcaq2ut;
249 };
250 typedef struct fla_caqrutinc_s fla_caqrutinc_t;
251 
252 
253 struct fla_apcaqutinc_s
254 {
255 	FLA_Matrix_type        matrix_type;
256 	int                    variant;
257 	fla_blocksize_t*       blocksize;
258 	struct fla_apcaq2ut_s* sub_apcaq2ut;
259 };
260 typedef struct fla_apcaqutinc_s fla_apcaqutinc_t;
261 
262 
263 struct fla_apcaq2ut_s
264 {
265 	FLA_Matrix_type        matrix_type;
266 	int                    variant;
267 	fla_blocksize_t*       blocksize;
268 	struct fla_apcaq2ut_s* sub_apcaq2ut;
269 	struct fla_gemm_s*     sub_gemm1;
270 	struct fla_gemm_s*     sub_gemm2;
271 	struct fla_trmm_s*     sub_trmm1;
272 	struct fla_trmm_s*     sub_trmm2;
273 	struct fla_trsm_s*     sub_trsm;
274 	struct fla_axpy_s*     sub_axpy1;
275 	struct fla_axpy_s*     sub_axpy2;
276 	struct fla_axpy_s*     sub_axpy3;
277 	struct fla_copy_s*     sub_copy;
278 };
279 typedef struct fla_apcaq2ut_s fla_apcaq2ut_t;
280 
281 
282 struct fla_qr_ut_inc_s
283 {
284 	FLA_Matrix_type        matrix_type;
285 	int                    variant;
286 	fla_blocksize_t*       blocksize;
287 	struct fla_qr_ut_s*    sub_qrut;
288 	struct fla_qr2_ut_s*   sub_qr2ut;
289 	struct fla_apqut_s*    sub_apqut;
290 	struct fla_apq2ut_s*   sub_apq2ut;
291 };
292 typedef struct fla_qr_ut_inc_s fla_qrutinc_t;
293 
294 
295 struct fla_apqutinc_s
296 {
297 	FLA_Matrix_type        matrix_type;
298 	int                    variant;
299 	fla_blocksize_t*       blocksize;
300 	struct fla_apqut_s*    sub_apqut;
301 	struct fla_apq2ut_s*   sub_apq2ut;
302 };
303 typedef struct fla_apqutinc_s fla_apqutinc_t;
304 
305 
306 struct fla_uddateut_s
307 {
308 	FLA_Matrix_type        matrix_type;
309 	int                    variant;
310 	fla_blocksize_t*       blocksize;
311 	struct fla_uddateut_s* sub_uddateut;
312 	struct fla_apqudut_s*  sub_apqudut;
313 };
314 typedef struct fla_uddateut_s fla_uddateut_t;
315 
316 
317 struct fla_apqudut_s
318 {
319 	FLA_Matrix_type       matrix_type;
320 	int                   variant;
321 	fla_blocksize_t*      blocksize;
322 	struct fla_apqudut_s* sub_apqudut;
323 	struct fla_gemm_s*    sub_gemm1;
324 	struct fla_gemm_s*    sub_gemm2;
325 	struct fla_gemm_s*    sub_gemm3;
326 	struct fla_gemm_s*    sub_gemm4;
327 	struct fla_trsm_s*    sub_trsm;
328 	struct fla_copyt_s*   sub_copyt;
329 	struct fla_axpyt_s*   sub_axpyt;
330 };
331 typedef struct fla_apqudut_s fla_apqudut_t;
332 
333 
334 struct fla_uddateutinc_s
335 {
336 	FLA_Matrix_type        matrix_type;
337 	int                    variant;
338 	fla_blocksize_t*       blocksize;
339 	struct fla_uddateut_s* sub_uddateut;
340 	struct fla_apqudut_s*  sub_apqudut;
341 };
342 typedef struct fla_uddateutinc_s fla_uddateutinc_t;
343 
344 
345 struct fla_apqudutinc_s
346 {
347 	FLA_Matrix_type        matrix_type;
348 	int                    variant;
349 	fla_blocksize_t*       blocksize;
350 	struct fla_apqudut_s*  sub_apqudut;
351 };
352 typedef struct fla_apqudutinc_s fla_apqudutinc_t;
353 
354 
355 struct fla_eig_gest_s
356 {
357 	FLA_Matrix_type        matrix_type;
358 	int                    variant;
359 	fla_blocksize_t*       blocksize;
360 	struct fla_eig_gest_s* sub_eig_gest;
361 	struct fla_axpy_s*     sub_axpy1;
362 	struct fla_axpy_s*     sub_axpy2;
363 	struct fla_gemm_s*     sub_gemm1;
364 	struct fla_gemm_s*     sub_gemm2;
365 	struct fla_gemm_s*     sub_gemm3;
366 	struct fla_hemm_s*     sub_hemm;
367 	struct fla_her2k_s*    sub_her2k;
368 	struct fla_trmm_s*     sub_trmm1;
369 	struct fla_trmm_s*     sub_trmm2;
370 	struct fla_trsm_s*     sub_trsm1;
371 	struct fla_trsm_s*     sub_trsm2;
372 };
373 typedef struct fla_eig_gest_s fla_eig_gest_t;
374 
375 
376 #define FLA_Cntl_sub_chol( cntl )      cntl->sub_chol
377 #define FLA_Cntl_sub_lu( cntl )        cntl->sub_lu
378 #define FLA_Cntl_sub_qr( cntl )        cntl->sub_qr
379 #define FLA_Cntl_sub_qrut( cntl )      cntl->sub_qrut
380 #define FLA_Cntl_sub_qr2ut( cntl )     cntl->sub_qr2ut
381 #define FLA_Cntl_sub_lq( cntl )        cntl->sub_lq
382 #define FLA_Cntl_sub_lqut( cntl )      cntl->sub_lqut
383 #define FLA_Cntl_sub_caqr2ut( cntl )   cntl->sub_caqr2ut
384 #define FLA_Cntl_sub_trinv( cntl )     cntl->sub_trinv
385 #define FLA_Cntl_sub_ttmm( cntl )      cntl->sub_ttmm
386 #define FLA_Cntl_sub_sylv( cntl )      cntl->sub_sylv
387 #define FLA_Cntl_sub_sylv1( cntl )     cntl->sub_sylv1
388 #define FLA_Cntl_sub_sylv2( cntl )     cntl->sub_sylv2
389 #define FLA_Cntl_sub_sylv3( cntl )     cntl->sub_sylv3
390 #define FLA_Cntl_sub_lyap( cntl )      cntl->sub_lyap
391 #define FLA_Cntl_sub_appiv( cntl )     cntl->sub_appiv
392 #define FLA_Cntl_sub_appiv1( cntl )    cntl->sub_appiv1
393 #define FLA_Cntl_sub_appiv2( cntl )    cntl->sub_appiv2
394 #define FLA_Cntl_sub_apqut( cntl )     cntl->sub_apqut
395 #define FLA_Cntl_sub_apq2ut( cntl )    cntl->sub_apq2ut
396 #define FLA_Cntl_sub_apcaq2ut( cntl )  cntl->sub_apcaq2ut
397 #define FLA_Cntl_sub_uddateut( cntl )  cntl->sub_uddateut
398 #define FLA_Cntl_sub_apqudut( cntl )   cntl->sub_apqudut
399 #define FLA_Cntl_sub_hessut( cntl )    cntl->sub_hessut
400 #define FLA_Cntl_sub_tridiagut( cntl ) cntl->sub_tridiagut
401 #define FLA_Cntl_sub_bidiagut( cntl )  cntl->sub_bidiagut
402 #define FLA_Cntl_sub_eig_gest( cntl )  cntl->sub_eig_gest
403 
404 
405 fla_chol_t* FLA_Cntl_chol_obj_create( FLA_Matrix_type  matrix_type,
406                                       int              variant,
407                                       fla_blocksize_t* blocksize,
408                                       fla_chol_t*      sub_chol,
409                                       fla_herk_t*      sub_herk,
410                                       fla_trsm_t*      sub_trsm,
411                                       fla_gemm_t*      sub_gemm );
412 fla_lu_t* FLA_Cntl_lu_obj_create( FLA_Matrix_type  matrix_type,
413                                   int              variant,
414                                   fla_blocksize_t* blocksize,
415                                   fla_lu_t*        sub_lu,
416                                   fla_gemm_t*      sub_gemm1,
417                                   fla_gemm_t*      sub_gemm2,
418                                   fla_gemm_t*      sub_gemm3,
419                                   fla_trsm_t*      sub_trsm1,
420                                   fla_trsm_t*      sub_trsm2,
421                                   fla_appiv_t*     sub_appiv1,
422                                   fla_appiv_t*     sub_appiv2 );
423 fla_appiv_t* FLA_Cntl_appiv_obj_create( FLA_Matrix_type  matrix_type,
424                                         int              variant,
425                                         fla_blocksize_t* blocksize,
426                                         fla_appiv_t*     sub_appiv );
427 fla_qrut_t* FLA_Cntl_qrut_obj_create( FLA_Matrix_type  matrix_type,
428                                       int              variant,
429                                       fla_blocksize_t* blocksize,
430                                       fla_qrut_t*      sub_qrut,
431                                       fla_apqut_t*     sub_apqut );
432 fla_qr2ut_t* FLA_Cntl_qr2ut_obj_create( FLA_Matrix_type  matrix_type,
433                                         int              variant,
434                                         fla_blocksize_t* blocksize,
435                                         fla_qr2ut_t*     sub_qr2ut,
436                                         fla_gemm_t*      sub_gemm1,
437                                         fla_gemm_t*      sub_gemm2,
438                                         fla_trsm_t*      sub_trsm,
439                                         fla_copy_t*      sub_copy,
440                                         fla_axpy_t*      sub_axpy );
441 fla_lqut_t* FLA_Cntl_lqut_obj_create( FLA_Matrix_type  matrix_type,
442                                       int              variant,
443                                       fla_blocksize_t* blocksize,
444                                       fla_lqut_t*      sub_lqut,
445                                       fla_apqut_t*     sub_apqut );
446 fla_caqr2ut_t* FLA_Cntl_caqr2ut_obj_create( FLA_Matrix_type  matrix_type,
447                                             int              variant,
448                                             fla_blocksize_t* blocksize,
449                                             fla_caqr2ut_t*   sub_caqr2ut,
450                                             fla_gemm_t*      sub_gemm1,
451                                             fla_gemm_t*      sub_gemm2,
452                                             fla_trmm_t*      sub_trmm1,
453                                             fla_trmm_t*      sub_trmm2,
454                                             fla_trsm_t*      sub_trsm,
455                                             fla_axpy_t*      sub_axpy1,
456                                             fla_axpy_t*      sub_axpy2,
457                                             fla_axpy_t*      sub_axpy3,
458                                             fla_copy_t*      sub_copy );
459 fla_hessut_t* FLA_Cntl_hessut_obj_create( FLA_Matrix_type  matrix_type,
460                                           int              variant,
461                                           fla_blocksize_t* blocksize );
462 fla_tridiagut_t* FLA_Cntl_tridiagut_obj_create( FLA_Matrix_type  matrix_type,
463                                                 int              variant,
464                                                 fla_blocksize_t* blocksize );
465 fla_bidiagut_t* FLA_Cntl_bidiagut_obj_create( FLA_Matrix_type  matrix_type,
466                                               int              variant,
467                                               fla_blocksize_t* blocksize );
468 fla_trinv_t* FLA_Cntl_trinv_obj_create( FLA_Matrix_type  matrix_type,
469                                         int              variant,
470                                         fla_blocksize_t* blocksize,
471                                         fla_trinv_t*     sub_trinv,
472                                         fla_trmm_t*      sub_trmm,
473                                         fla_trsm_t*      sub_trsm1,
474                                         fla_trsm_t*      sub_trsm2,
475                                         fla_gemm_t*      sub_gemm );
476 fla_ttmm_t* FLA_Cntl_ttmm_obj_create( FLA_Matrix_type  matrix_type,
477                                       int              variant,
478                                       fla_blocksize_t* blocksize,
479                                       fla_ttmm_t*      sub_ttmm,
480                                       fla_herk_t*      sub_herk,
481                                       fla_trmm_t*      sub_trmm,
482                                       fla_gemm_t*      sub_gemm );
483 fla_sylv_t* FLA_Cntl_sylv_obj_create( FLA_Matrix_type  matrix_type,
484                                       int              variant,
485                                       fla_blocksize_t* blocksize,
486                                       fla_sylv_t*      sub_sylv1,
487                                       fla_sylv_t*      sub_sylv2,
488                                       fla_sylv_t*      sub_sylv3,
489                                       fla_gemm_t*      sub_gemm1,
490                                       fla_gemm_t*      sub_gemm2,
491                                       fla_gemm_t*      sub_gemm3,
492                                       fla_gemm_t*      sub_gemm4,
493                                       fla_gemm_t*      sub_gemm5,
494                                       fla_gemm_t*      sub_gemm6,
495                                       fla_gemm_t*      sub_gemm7,
496                                       fla_gemm_t*      sub_gemm8 );
497 fla_lyap_t* FLA_Cntl_lyap_obj_create( FLA_Matrix_type  matrix_type,
498                                       int              variant,
499                                       fla_blocksize_t* blocksize,
500                                       fla_scal_t*      sub_scal,
501                                       fla_lyap_t*      sub_lyap,
502                                       fla_sylv_t*      sub_sylv,
503                                       fla_gemm_t*      sub_gemm1,
504                                       fla_gemm_t*      sub_gemm2,
505                                       fla_hemm_t*      sub_hemm,
506                                       fla_her2k_t*     sub_her2k );
507 fla_spdinv_t* FLA_Cntl_spdinv_obj_create( FLA_Matrix_type  matrix_type,
508                                           int              variant,
509                                           fla_blocksize_t* blocksize,
510                                           fla_chol_t*      sub_chol,
511                                           fla_trinv_t*     sub_trinv,
512                                           fla_ttmm_t*      sub_ttmm );
513 fla_apqut_t* FLA_Cntl_apqut_obj_create( FLA_Matrix_type  matrix_type,
514                                         int              variant,
515                                         fla_blocksize_t* blocksize,
516                                         fla_apqut_t*     sub_apqut,
517                                         fla_trmm_t*      sub_trmm1,
518                                         fla_trmm_t*      sub_trmm2,
519                                         fla_gemm_t*      sub_gemm1,
520                                         fla_gemm_t*      sub_gemm2,
521                                         fla_trsm_t*      sub_trsm,
522                                         fla_copyt_t*     sub_copyt,
523                                         fla_axpyt_t*     sub_axpyt );
524 fla_apq2ut_t* FLA_Cntl_apq2ut_obj_create( FLA_Matrix_type  matrix_type,
525                                           int              variant,
526                                           fla_blocksize_t* blocksize,
527                                           fla_apq2ut_t*    sub_apq2ut,
528                                           fla_gemm_t*      sub_gemm1,
529                                           fla_gemm_t*      sub_gemm2,
530                                           fla_trsm_t*      sub_trsm,
531                                           fla_copyt_t*     sub_copyt,
532                                           fla_axpyt_t*     sub_axpyt );
533 fla_apcaq2ut_t* FLA_Cntl_apcaq2ut_obj_create( FLA_Matrix_type  matrix_type,
534                                               int              variant,
535                                               fla_blocksize_t* blocksize,
536                                               fla_apcaq2ut_t*  sub_apcaq2ut,
537                                               fla_gemm_t*      sub_gemm1,
538                                               fla_gemm_t*      sub_gemm2,
539                                               fla_trmm_t*      sub_trmm1,
540                                               fla_trmm_t*      sub_trmm2,
541                                               fla_trsm_t*      sub_trsm,
542                                               fla_axpy_t*      sub_axpy1,
543                                               fla_axpy_t*      sub_axpy2,
544                                               fla_axpy_t*      sub_axpy3,
545                                               fla_copy_t*      sub_copy );
546 fla_qrutinc_t* FLA_Cntl_qrutinc_obj_create( FLA_Matrix_type  matrix_type,
547                                             int              variant,
548                                             fla_blocksize_t* blocksize,
549                                             fla_qrut_t*      sub_qrut,
550                                             fla_apqut_t*     sub_apqut,
551                                             fla_qr2ut_t*     sub_qr2ut,
552                                             fla_apq2ut_t*    sub_apq2ut );
553 fla_apqutinc_t* FLA_Cntl_apqutinc_obj_create( FLA_Matrix_type  matrix_type,
554                                               int              variant,
555                                               fla_blocksize_t* blocksize,
556                                               fla_apqut_t*     sub_apqut,
557                                               fla_apq2ut_t*    sub_apq2ut );
558 fla_caqrutinc_t* FLA_Cntl_caqrutinc_obj_create( FLA_Matrix_type  matrix_type,
559                                                 int              variant,
560                                                 fla_blocksize_t* blocksize,
561                                                 fla_caqr2ut_t*   sub_caqr2ut,
562                                                 fla_apcaq2ut_t*  sub_apcaq2ut );
563 fla_apcaqutinc_t* FLA_Cntl_apcaqutinc_obj_create( FLA_Matrix_type  matrix_type,
564                                                   int              variant,
565                                                   fla_blocksize_t* blocksize,
566                                                   fla_apcaq2ut_t*  sub_apcaq2ut );
567 fla_uddateut_t* FLA_Cntl_uddateut_obj_create( FLA_Matrix_type  matrix_type,
568                                               int              variant,
569                                               fla_blocksize_t* blocksize,
570                                               fla_uddateut_t*  sub_uddateut,
571                                               fla_apqudut_t*   sub_apqudut );
572 fla_apqudut_t* FLA_Cntl_apqudut_obj_create( FLA_Matrix_type  matrix_type,
573                                             int              variant,
574                                             fla_blocksize_t* blocksize,
575                                             fla_apqudut_t*   sub_apq2ut,
576                                             fla_gemm_t*      sub_gemm1,
577                                             fla_gemm_t*      sub_gemm2,
578                                             fla_gemm_t*      sub_gemm3,
579                                             fla_gemm_t*      sub_gemm4,
580                                             fla_trsm_t*      sub_trsm,
581                                             fla_copyt_t*     sub_copyt,
582                                             fla_axpyt_t*     sub_axpyt );
583 fla_uddateutinc_t* FLA_Cntl_uddateutinc_obj_create( FLA_Matrix_type  matrix_type,
584                                                     int              variant,
585                                                     fla_blocksize_t* blocksize,
586                                                     fla_uddateut_t*  sub_uddateut,
587                                                     fla_apqudut_t*   sub_apqudut );
588 fla_apqudutinc_t* FLA_Cntl_apqudutinc_obj_create( FLA_Matrix_type  matrix_type,
589                                                   int              variant,
590                                                   fla_blocksize_t* blocksize,
591                                                   fla_apqudut_t*   sub_apqudut );
592 fla_eig_gest_t* FLA_Cntl_eig_gest_obj_create( FLA_Matrix_type  matrix_type,
593                                               int              variant,
594                                               fla_blocksize_t* blocksize,
595                                               fla_eig_gest_t*  sub_eig_gest,
596                                               fla_axpy_t*      sub_axpy1,
597                                               fla_axpy_t*      sub_axpy2,
598                                               fla_gemm_t*      sub_gemm1,
599                                               fla_gemm_t*      sub_gemm2,
600                                               fla_gemm_t*      sub_gemm3,
601                                               fla_hemm_t*      sub_hemm,
602                                               fla_her2k_t*     sub_her2k,
603                                               fla_trmm_t*      sub_trmm1,
604                                               fla_trmm_t*      sub_trmm2,
605                                               fla_trsm_t*      sub_trsm1,
606                                               fla_trsm_t*      sub_trsm2 );
607 
608