11 #ifndef FLASH_QUEUE_MACRO_DEFS_H
12 #define FLASH_QUEUE_MACRO_DEFS_H
15 #ifdef FLA_ENABLE_SUPERMATRIX
18 #define FLASH_OBJ_PTR_ID( A ) ( A ).base->id
21 #define FLASH_QUEUE_VERBOSE_NONE 0
22 #define FLASH_QUEUE_VERBOSE_READABLE 1
23 #define FLASH_QUEUE_VERBOSE_GRAPHVIZ 2
26 #define FLASH_QUEUE_AFFINITY_NONE 0
27 #define FLASH_QUEUE_AFFINITY_2D_BLOCK_CYCLIC 1
28 #define FLASH_QUEUE_AFFINITY_1D_ROW_BLOCK_CYCLIC 2
29 #define FLASH_QUEUE_AFFINITY_1D_COLUMN_BLOCK_CYCLIC 3
30 #define FLASH_QUEUE_AFFINITY_ROUND_ROBIN 4
39 #define ENQUEUE_FLASH_LU_piv_macro( A, p, cntl ) \
40 FLASH_Queue_push( (void *) FLA_LU_piv_macro_task, \
47 #define ENQUEUE_FLASH_Apply_pivots_macro( side, trans, p, A, cntl ) \
48 FLASH_Queue_push( (void *) FLA_Apply_pivots_macro_task, \
56 #define ENQUEUE_FLASH_LU_piv( A, p, cntl ) \
57 FLASH_Queue_push( (void *) FLA_LU_piv_task, \
64 #define ENQUEUE_FLASH_LU_piv_copy( A, p, U, cntl ) \
65 FLASH_Queue_push( (void *) FLA_LU_piv_copy_task, \
72 #define ENQUEUE_FLASH_Trsm_piv( A, C, p, cntl ) \
73 FLASH_Queue_push( (void *) FLA_Trsm_piv_task, \
80 #define ENQUEUE_FLASH_SA_LU( U, D, p, L, nb_alg, cntl ) \
81 FLASH_Queue_push( (void *) FLA_SA_LU_task, \
89 #define ENQUEUE_FLASH_SA_FS( L, D, p, C, E, nb_alg, cntl ) \
90 FLASH_Queue_push( (void *) FLA_SA_FS_task, \
98 #define ENQUEUE_FLASH_LU_nopiv( A, cntl ) \
99 FLASH_Queue_push( (void *) FLA_LU_nopiv_task, \
106 #define ENQUEUE_FLASH_Trinv( uplo, diag, A, cntl ) \
107 FLASH_Queue_push( (void *) FLA_Trinv_task, \
115 #define ENQUEUE_FLASH_Ttmm( uplo, A, cntl ) \
116 FLASH_Queue_push( (void *) FLA_Ttmm_task, \
124 #define ENQUEUE_FLASH_Chol( uplo, A, cntl ) \
125 FLASH_Queue_push( (void *) FLA_Chol_task, \
133 #define ENQUEUE_FLASH_Sylv( transA, transB, isgn, A, B, C, scale, cntl ) \
134 FLASH_Queue_push( (void *) FLA_Sylv_task, \
143 #define ENQUEUE_FLASH_Lyap( trans, isgn, A, C, scale, cntl ) \
144 FLASH_Queue_push( (void *) FLA_Lyap_task, \
153 #define ENQUEUE_FLASH_QR_UT_macro( A, T, cntl ) \
154 FLASH_Queue_push( (void *) FLA_QR_UT_macro_task, \
161 #define ENQUEUE_FLASH_QR_UT( A, T, cntl ) \
162 FLASH_Queue_push( (void *) FLA_QR_UT_task, \
169 #define ENQUEUE_FLASH_QR_UT_copy( A, T, U, cntl ) \
170 FLASH_Queue_push( (void *) FLA_QR_UT_copy_task, \
177 #define ENQUEUE_FLASH_QR2_UT( B, D, T, cntl ) \
178 FLASH_Queue_push( (void *) FLA_QR2_UT_task, \
185 #define ENQUEUE_FLASH_LQ_UT_macro( A, T, cntl ) \
186 FLASH_Queue_push( (void *) FLA_LQ_UT_macro_task, \
193 #define ENQUEUE_FLASH_CAQR2_UT( B, D, T, cntl ) \
194 FLASH_Queue_push( (void *) FLA_CAQR2_UT_task, \
201 #define ENQUEUE_FLASH_Apply_Q_UT( side, trans, direct, storev, A, T, W, B, cntl ) \
202 FLASH_Queue_push( (void *) FLA_Apply_Q_UT_task, \
207 side, trans, direct, storev, \
210 #define ENQUEUE_FLASH_Apply_Q2_UT( side, trans, direct, storev, D, T, W, C, E, cntl ) \
211 FLASH_Queue_push( (void *) FLA_Apply_Q2_UT_task, \
216 side, trans, direct, storev, \
219 #define ENQUEUE_FLASH_Apply_CAQ2_UT( side, trans, direct, storev, D, T, W, C, E, cntl ) \
220 FLASH_Queue_push( (void *) FLA_Apply_CAQ2_UT_task, \
225 side, trans, direct, storev, \
228 #define ENQUEUE_FLASH_UDdate_UT( R, C, D, T, cntl ) \
229 FLASH_Queue_push( (void *) FLA_UDdate_UT_task, \
236 #define ENQUEUE_FLASH_Apply_QUD_UT( side, trans, direct, storev, T, W, R, U, C, V, D, cntl ) \
237 FLASH_Queue_push( (void *) FLA_Apply_QUD_UT_task, \
242 side, trans, direct, storev, \
243 T, U, V, W, R, C, D )
245 #define ENQUEUE_FLASH_Eig_gest( inv, uplo, A, Y, B, cntl ) \
246 FLASH_Queue_push( (void *) FLA_Eig_gest_task, \
256 #define ENQUEUE_FLASH_Gemm( transA, transB, alpha, A, B, beta, C, cntl ) \
257 FLASH_Queue_push( (void *) FLA_Gemm_task, \
266 #define ENQUEUE_FLASH_Hemm( side, uplo, alpha, A, B, beta, C, cntl ) \
267 FLASH_Queue_push( (void *) FLA_Hemm_task, \
276 #define ENQUEUE_FLASH_Herk( uplo, transA, alpha, A, beta, C, cntl ) \
277 FLASH_Queue_push( (void *) FLA_Herk_task, \
286 #define ENQUEUE_FLASH_Her2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
287 FLASH_Queue_push( (void *) FLA_Her2k_task, \
296 #define ENQUEUE_FLASH_Symm( side, uplo, alpha, A, B, beta, C, cntl ) \
297 FLASH_Queue_push( (void *) FLA_Symm_task, \
306 #define ENQUEUE_FLASH_Syrk( uplo, transA, alpha, A, beta, C, cntl ) \
307 FLASH_Queue_push( (void *) FLA_Syrk_task, \
316 #define ENQUEUE_FLASH_Syr2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
317 FLASH_Queue_push( (void *) FLA_Syr2k_task, \
326 #define ENQUEUE_FLASH_Trmm( side, uplo, trans, diag, alpha, A, C, cntl ) \
327 FLASH_Queue_push( (void *) FLA_Trmm_task, \
332 side, uplo, trans, diag, \
336 #define ENQUEUE_FLASH_Trsm( side, uplo, trans, diag, alpha, A, C, cntl ) \
337 FLASH_Queue_push( (void *) FLA_Trsm_task, \
342 side, uplo, trans, diag, \
348 #define ENQUEUE_FLASH_Gemv( trans, alpha, A, x, beta, y, cntl ) \
349 FLASH_Queue_push( (void *) FLA_Gemv_task, \
358 #define ENQUEUE_FLASH_Trsv( uplo, trans, diag, A, x, cntl ) \
359 FLASH_Queue_push( (void *) FLA_Trsv_task, \
369 #define ENQUEUE_FLASH_Axpy( alpha, A, B, cntl ) \
370 FLASH_Queue_push( (void *) FLA_Axpy_task, \
378 #define ENQUEUE_FLASH_Axpyt( trans, alpha, A, B, cntl ) \
379 FLASH_Queue_push( (void *) FLA_Axpyt_task, \
388 #define ENQUEUE_FLASH_Copy( A, B, cntl ) \
389 FLASH_Queue_push( (void *) FLA_Copy_task, \
396 #define ENQUEUE_FLASH_Copyt( trans, A, B, cntl ) \
397 FLASH_Queue_push( (void *) FLA_Copyt_task, \
405 #define ENQUEUE_FLASH_Copyr( uplo, A, B, cntl ) \
406 FLASH_Queue_push( (void *) FLA_Copyr_task, \
414 #define ENQUEUE_FLASH_Scal( alpha, A, cntl ) \
415 FLASH_Queue_push( (void *) FLA_Scal_task, \
423 #define ENQUEUE_FLASH_Scalr( uplo, alpha, A, cntl ) \
424 FLASH_Queue_push( (void *) FLA_Scalr_task, \
435 #define ENQUEUE_FLASH_Obj_create_buffer( rs, cs, A, cntl ) \
436 FLASH_Queue_push( (void *) FLA_Obj_create_buffer_task, \
444 #define ENQUEUE_FLASH_Obj_free_buffer( A, cntl ) \
445 FLASH_Queue_push( (void *) FLA_Obj_free_buffer_task, \
456 #define ENQUEUE_FLASH_LU_piv_macro( A, p, cntl ) \
457 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
459 #define ENQUEUE_FLASH_Apply_pivots_macro( side, trans, p, A, cntl ) \
460 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
462 #define ENQUEUE_FLASH_LU_piv( A, p, cntl ) \
463 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
465 #define ENQUEUE_FLASH_LU_piv_copy( A, p, U, cntl ) \
466 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
468 #define ENQUEUE_FLASH_Trsm_piv( A, C, p, cntl ) \
469 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
471 #define ENQUEUE_FLASH_SA_LU( U, D, p, L, nb_alg, cntl ) \
472 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
474 #define ENQUEUE_FLASH_SA_FS( L, D, p, C, E, nb_alg, cntl ) \
475 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
477 #define ENQUEUE_FLASH_LU_nopiv( A, cntl ) \
478 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
480 #define ENQUEUE_FLASH_Trinv( uplo, diag, A, cntl ) \
481 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
483 #define ENQUEUE_FLASH_Ttmm( uplo, A, cntl ) \
484 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
486 #define ENQUEUE_FLASH_Chol( uplo, A, cntl ) \
487 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
489 #define ENQUEUE_FLASH_Sylv( transA, transB, isgn, A, B, C, scale, cntl ) \
490 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
492 #define ENQUEUE_FLASH_Lyap( trans, isgn, A, C, scale, cntl ) \
493 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
495 #define ENQUEUE_FLASH_QR_UT_macro( A, T, cntl ) \
496 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
498 #define ENQUEUE_FLASH_QR_UT( A, T, cntl ) \
499 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
501 #define ENQUEUE_FLASH_QR_UT_copy( A, T, U, cntl ) \
502 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
504 #define ENQUEUE_FLASH_QR2_UT( B, D, T, cntl ) \
505 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
507 #define ENQUEUE_FLASH_LQ_UT_macro( A, T, cntl ) \
508 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
510 #define ENQUEUE_FLASH_CAQR2_UT( B, D, T, cntl ) \
511 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
513 #define ENQUEUE_FLASH_UDdate_UT( R, C, D, T, cntl ) \
514 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
516 #define ENQUEUE_FLASH_Apply_Q_UT( side, trans, direct, storev, A, T, W, B, cntl ) \
517 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
519 #define ENQUEUE_FLASH_Apply_Q2_UT( side, trans, direct, storev, D, T, W, C, E, cntl ) \
520 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
522 #define ENQUEUE_FLASH_Apply_CAQ2_UT( side, trans, direct, storev, D, T, W, C, E, cntl ) \
523 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
525 #define ENQUEUE_FLASH_Apply_QUD_UT( side, trans, direct, storev, T, W, R, U, C, V, D, cntl ) \
526 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
528 #define ENQUEUE_FLASH_Eig_gest( inv, uplo, A, Y, B, cntl ) \
529 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
533 #define ENQUEUE_FLASH_Gemm( transA, transB, alpha, A, B, beta, C, cntl ) \
534 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
536 #define ENQUEUE_FLASH_Hemm( side, uplo, alpha, A, B, beta, C, cntl ) \
537 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
539 #define ENQUEUE_FLASH_Herk( uplo, transA, alpha, A, beta, C, cntl ) \
540 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
542 #define ENQUEUE_FLASH_Her2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
543 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
545 #define ENQUEUE_FLASH_Symm( side, uplo, alpha, A, B, beta, C, cntl ) \
546 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
548 #define ENQUEUE_FLASH_Syrk( uplo, transA, alpha, A, beta, C, cntl ) \
549 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
551 #define ENQUEUE_FLASH_Syr2k( uplo, transA, alpha, A, B, beta, C, cntl ) \
552 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
554 #define ENQUEUE_FLASH_Trmm( side, uplo, trans, diag, alpha, A, C, cntl ) \
555 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
557 #define ENQUEUE_FLASH_Trsm( side, uplo, trans, diag, alpha, A, C, cntl ) \
558 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
562 #define ENQUEUE_FLASH_Gemv( transA, alpha, A, x, beta, y, cntl ) \
563 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
565 #define ENQUEUE_FLASH_Trsv( uplo, trans, diag, A, x, cntl ) \
566 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
570 #define ENQUEUE_FLASH_Axpy( alpha, A, B, cntl ) \
571 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
573 #define ENQUEUE_FLASH_Axpyt( trans, alpha, A, B, cntl ) \
574 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
576 #define ENQUEUE_FLASH_Copy( A, B, cntl ) \
577 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
579 #define ENQUEUE_FLASH_Copyt( trans, A, B, cntl ) \
580 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
582 #define ENQUEUE_FLASH_Copyr( uplo, A, B, cntl ) \
583 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
585 #define ENQUEUE_FLASH_Scal( alpha, A, cntl ) \
586 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
588 #define ENQUEUE_FLASH_Scalr( uplo, alpha, A, cntl ) \
589 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
593 #define ENQUEUE_FLASH_Obj_create_buffer( rs, cs, A, cntl ) \
594 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )
596 #define ENQUEUE_FLASH_Obj_free_buffer( A, cntl ) \
597 FLA_Check_error_code( FLA_SUPERMATRIX_NOT_ENABLED )