FLA_Error FLA_Copyt_n( FLA_Obj A, FLA_Obj B, fla_copyt_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Copyt_n_task( A, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Copyt_n_blk_var1( A, B, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Copyt_n_blk_var2( A, B, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Copyt_n_blk_var3( A, B, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Copyt_n_blk_var4( A, B, cntl ); } #endif else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Apply_pivots_rn( FLA_Obj p, FLA_Obj A, fla_appiv_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_EXTERN ) { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 ) { r_val = FLA_Apply_pivots_rn_opt_var1( p, A ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Gemv_h( FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Gemv_h_task( alpha, A, x, beta, y, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Gemv_h_blk_var1( alpha, A, x, beta, y, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Gemv_h_blk_var2( alpha, A, x, beta, y, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 ) { r_val = FLA_Gemv_h_blk_var5( alpha, A, x, beta, y, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT6 ) { r_val = FLA_Gemv_h_blk_var6( alpha, A, x, beta, y, cntl ); } #endif else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Scalr_l( FLA_Obj alpha, FLA_Obj A, fla_scalr_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Scalr_l_task( alpha, A, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Scalr_l_blk_var1( alpha, A, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Scalr_l_blk_var2( alpha, A, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Scalr_l_blk_var3( alpha, A, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Scalr_l_blk_var4( alpha, A, cntl ); } else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Copyr_u( FLA_Obj A, FLA_Obj B, fla_copyr_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Copyr_u_task( A, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Copyr_u_blk_var1( A, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Copyr_u_blk_var2( A, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Copyr_u_blk_var3( A, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Copyr_u_blk_var4( A, B, cntl ); } else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Trsv_lc( FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Trsv_lc_task( diag, A, x, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Trsv_lc_blk_var1( diag, A, x, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Trsv_lc_blk_var2( diag, A, x, cntl ); } else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_LQ_UT_internal( FLA_Obj A, FLA_Obj T, fla_lqut_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_LQ_UT_internal_check( A, T, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { if ( FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_LQ_UT_macro( A, T, cntl ); } else { // Execute r_val = FLA_LQ_UT_macro_task( A, T, cntl ); } } else { if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 ) { r_val = FLA_LQ_UT_unb_var1( A, T ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 ) { r_val = FLA_LQ_UT_opt_var1( A, T ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_LQ_UT_blk_var1( A, T, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 ) { r_val = FLA_LQ_UT_unb_var2( A, T ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 ) { r_val = FLA_LQ_UT_opt_var2( A, T ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_LQ_UT_blk_var2( A, T, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_LQ_UT_blk_var3( A, T, cntl ); } else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } } return r_val; }
FLA_Error FLA_Trmm_lun( FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_trmm_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Trmm_lun_task( diag, alpha, A, B, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Trmm_lun_blk_var1( diag, alpha, A, B, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Trmm_lun_blk_var2( diag, alpha, A, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Trmm_lun_blk_var3( diag, alpha, A, B, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Trmm_lun_blk_var4( diag, alpha, A, B, cntl ); } #endif #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 ) { r_val = FLA_Trmm_lun_unb_var1( diag, alpha, A, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 ) { r_val = FLA_Trmm_lun_unb_var2( diag, alpha, A, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 ) { r_val = FLA_Trmm_lun_unb_var3( diag, alpha, A, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 ) { r_val = FLA_Trmm_lun_unb_var4( diag, alpha, A, B ); } #endif else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Symm_internal( FLA_Side side, FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C, fla_symm_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_Symm_internal_check( side, uplo, alpha, A, B, beta, C, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_MATRIX && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { // Recurse r_val = FLA_Symm_internal( side, uplo, alpha, *FLASH_OBJ_PTR_AT( A ), *FLASH_OBJ_PTR_AT( B ), beta, *FLASH_OBJ_PTR_AT( C ), flash_symm_cntl_mm ); } else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Symm( side, uplo, alpha, A, B, beta, C, cntl ); } else { if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && !FLASH_Queue_get_enabled( ) ) { // Execute leaf cntl = flash_symm_cntl_blas; } // Parameter combinations if ( side == FLA_LEFT ) { if ( uplo == FLA_LOWER_TRIANGULAR ) r_val = FLA_Symm_ll( alpha, A, B, beta, C, cntl ); else if ( uplo == FLA_UPPER_TRIANGULAR ) r_val = FLA_Symm_lu( alpha, A, B, beta, C, cntl ); } else if ( side == FLA_RIGHT ) { if ( uplo == FLA_LOWER_TRIANGULAR ) r_val = FLA_Symm_rl( alpha, A, B, beta, C, cntl ); else if ( uplo == FLA_UPPER_TRIANGULAR ) r_val = FLA_Symm_ru( alpha, A, B, beta, C, cntl ); } } return r_val; }
FLA_Error FLA_Copyt_internal( FLA_Trans trans, FLA_Obj A, FLA_Obj B, fla_copyt_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_Copyt_internal_check( trans, A, B, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_MATRIX && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { // Recurse r_val = FLA_Copyt_internal( trans, *FLASH_OBJ_PTR_AT( A ), *FLASH_OBJ_PTR_AT( B ), flash_copyt_cntl ); } else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Copyt( trans, A, B, cntl ); } else { if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && !FLASH_Queue_get_enabled( ) ) { // Execute leaf cntl = flash_copyt_cntl_blas; } // Parameter combinations if ( trans == FLA_NO_TRANSPOSE ) { r_val = FLA_Copyt_n( A, B, cntl ); } else if ( trans == FLA_TRANSPOSE ) { r_val = FLA_Copyt_t( A, B, cntl ); } else if ( trans == FLA_CONJ_NO_TRANSPOSE ) { r_val = FLA_Copyt_c( A, B, cntl ); } else if ( trans == FLA_CONJ_TRANSPOSE ) { r_val = FLA_Copyt_h( A, B, cntl ); } } return r_val; }
FLA_Error FLA_Apply_Q_UT_lnbc( FLA_Obj A, FLA_Obj T, FLA_Obj W, FLA_Obj B, fla_apqut_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Apply_Q_UT_lnbc_blk_var1( A, T, W, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Apply_Q_UT_lnbc_blk_var2( A, T, W, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Apply_Q_UT_lnbc_blk_var3( A, T, W, B, cntl ); } else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Apply_Q2_UT_lnfc( FLA_Obj D, FLA_Obj T, FLA_Obj W, FLA_Obj C, FLA_Obj E, fla_apq2ut_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Apply_Q2_UT_lnfc_blk_var1( D, T, W, C, E, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Apply_Q2_UT_lnfc_blk_var2( D, T, W, C, E, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Apply_Q2_UT_lnfc_blk_var3( D, T, W, C, E, cntl ); } else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Apply_pivots_internal( FLA_Side side, FLA_Trans trans, FLA_Obj p, FLA_Obj A, fla_appiv_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { if ( FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Apply_pivots_macro( side, trans, *FLASH_OBJ_PTR_AT( p ), A, cntl ); } else { // Execute leaf r_val = FLA_Apply_pivots_macro_task( side, trans, *FLASH_OBJ_PTR_AT( p ), A, cntl ); } } else { // Parameter combinations if ( trans == FLA_NO_TRANSPOSE ) { if ( side == FLA_LEFT ) { r_val = FLA_Apply_pivots_ln( p, A, cntl ); } else if ( side == FLA_RIGHT ) { r_val = FLA_Apply_pivots_rn( p, A, cntl ); } } else if ( trans == FLA_TRANSPOSE ) { if ( side == FLA_LEFT ) { r_val = FLA_Apply_pivots_lt( p, A, cntl ); } else if ( side == FLA_RIGHT ) { r_val = FLA_Apply_pivots_rt( p, A, cntl ); } } } return r_val; }
FLA_Error FLA_Syrk_lt( FLA_Obj alpha, FLA_Obj A, FLA_Obj beta, FLA_Obj C, fla_syrk_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Syrk_lt_task( alpha, A, beta, C, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Syrk_lt_blk_var1( alpha, A, beta, C, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Syrk_lt_blk_var2( alpha, A, beta, C, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Syrk_lt_blk_var3( alpha, A, beta, C, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Syrk_lt_blk_var4( alpha, A, beta, C, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 ) { r_val = FLA_Syrk_lt_blk_var5( alpha, A, beta, C, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT6 ) { r_val = FLA_Syrk_lt_blk_var6( alpha, A, beta, C, cntl ); } #endif #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 ) { r_val = FLA_Syrk_lt_unb_var1( alpha, A, beta, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 ) { r_val = FLA_Syrk_lt_unb_var2( alpha, A, beta, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 ) { r_val = FLA_Syrk_lt_unb_var3( alpha, A, beta, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 ) { r_val = FLA_Syrk_lt_unb_var4( alpha, A, beta, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT5 ) { r_val = FLA_Syrk_lt_unb_var5( alpha, A, beta, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT6 ) { r_val = FLA_Syrk_lt_unb_var6( alpha, A, beta, C ); } #endif else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Lyap_h( FLA_Obj isgn, FLA_Obj A, FLA_Obj C, FLA_Obj scale, fla_lyap_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 ) { r_val = FLA_Lyap_h_unb_var1( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 ) { r_val = FLA_Lyap_h_unb_var2( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 ) { r_val = FLA_Lyap_h_unb_var3( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 ) { r_val = FLA_Lyap_h_unb_var4( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 ) { r_val = FLA_Lyap_h_opt_var1( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 ) { r_val = FLA_Lyap_h_opt_var2( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT3 ) { r_val = FLA_Lyap_h_opt_var3( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT4 ) { r_val = FLA_Lyap_h_opt_var4( isgn, A, C ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Lyap_h_blk_var1( isgn, A, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Lyap_h_blk_var2( isgn, A, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Lyap_h_blk_var3( isgn, A, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Lyap_h_blk_var4( isgn, A, C, scale, cntl ); } else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Trsm_internal( FLA_Side side, FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, fla_trsm_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_Trsm_internal_check( side, uplo, transa, diag, alpha, A, B, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_MATRIX && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { // Recurse r_val = FLA_Trsm_internal( side, uplo, transa, diag, alpha, *FLASH_OBJ_PTR_AT( A ), *FLASH_OBJ_PTR_AT( B ), flash_trsm_cntl_mm ); } else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Trsm( side, uplo, transa, diag, alpha, A, B, cntl ); } else { if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && !FLASH_Queue_get_enabled( ) ) { // Execute leaf cntl = flash_trsm_cntl_blas; } // Parameter combinations if ( side == FLA_LEFT ) { if ( uplo == FLA_LOWER_TRIANGULAR ) { if ( transa == FLA_NO_TRANSPOSE ) r_val = FLA_Trsm_lln( diag, alpha, A, B, cntl ); else if ( transa == FLA_TRANSPOSE ) r_val = FLA_Trsm_llt( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Trsm_llc( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_TRANSPOSE ) r_val = FLA_Trsm_llh( diag, alpha, A, B, cntl ); } else if ( uplo == FLA_UPPER_TRIANGULAR ) { if ( transa == FLA_NO_TRANSPOSE ) r_val = FLA_Trsm_lun( diag, alpha, A, B, cntl ); else if ( transa == FLA_TRANSPOSE ) r_val = FLA_Trsm_lut( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Trsm_luc( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_TRANSPOSE ) r_val = FLA_Trsm_luh( diag, alpha, A, B, cntl ); } } else if ( side == FLA_RIGHT ) { if ( uplo == FLA_LOWER_TRIANGULAR ) { if ( transa == FLA_NO_TRANSPOSE ) r_val = FLA_Trsm_rln( diag, alpha, A, B, cntl ); else if ( transa == FLA_TRANSPOSE ) r_val = FLA_Trsm_rlt( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Trsm_rlc( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_TRANSPOSE ) r_val = FLA_Trsm_rlh( diag, alpha, A, B, cntl ); } else if ( uplo == FLA_UPPER_TRIANGULAR ) { if ( transa == FLA_NO_TRANSPOSE ) r_val = FLA_Trsm_run( diag, alpha, A, B, cntl ); else if ( transa == FLA_TRANSPOSE ) r_val = FLA_Trsm_rut( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Trsm_ruc( diag, alpha, A, B, cntl ); else if ( transa == FLA_CONJ_TRANSPOSE ) r_val = FLA_Trsm_ruh( diag, alpha, A, B, cntl ); } } } return r_val; }
FLA_Error FLA_Trinv_internal( FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A, fla_trinv_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_Trinv_internal_check( uplo, diag, A, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_MATRIX && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { // Recurse r_val = FLA_Trinv_internal( uplo, diag, *FLASH_OBJ_PTR_AT( A ), flash_trinv_cntl ); } else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Trinv( uplo, diag, A, cntl ); } else { if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && !FLASH_Queue_get_enabled( ) ) { // Execute leaf cntl = fla_trinv_cntl_leaf; } // Parameter combinations if ( uplo == FLA_LOWER_TRIANGULAR ) { if ( diag == FLA_NONUNIT_DIAG ) { r_val = FLA_Trinv_ln( A, cntl ); } else if ( diag == FLA_UNIT_DIAG ) { r_val = FLA_Trinv_lu( A, cntl ); } } else if ( uplo == FLA_UPPER_TRIANGULAR ) { if ( diag == FLA_NONUNIT_DIAG ) { r_val = FLA_Trinv_un( A, cntl ); } else if ( diag == FLA_UNIT_DIAG ) { r_val = FLA_Trinv_uu( A, cntl ); } } } return r_val; }
FLA_Error FLA_Gemm_internal( FLA_Trans transa, FLA_Trans transb, FLA_Obj alpha, FLA_Obj A, FLA_Obj B, FLA_Obj beta, FLA_Obj C, fla_gemm_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_Gemm_internal_check( transa, transb, alpha, A, B, beta, C, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && (FLA_Obj_elemtype( A ) == FLA_TENSOR || FLA_Obj_elemtype( A ) == FLA_MATRIX) && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { // Recurse r_val = FLA_Gemm_internal( transa, transb, alpha, *FLASH_OBJ_PTR_AT( A ), *FLASH_OBJ_PTR_AT( B ), beta, *FLASH_OBJ_PTR_AT( C ), flash_gemm_cntl_mm_op ); } else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Gemm( transa, transb, alpha, A, B, beta, C, cntl ); } else { if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && !FLASH_Queue_get_enabled( ) ) { // Execute leaf cntl = flash_gemm_cntl_blas; } // Parameter combinations if ( transa == FLA_NO_TRANSPOSE ) { if ( transb == FLA_NO_TRANSPOSE ) r_val = FLA_Gemm_nn( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_TRANSPOSE ) r_val = FLA_Gemm_nt( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Gemm_nc( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_TRANSPOSE ) r_val = FLA_Gemm_nh( alpha, A, B, beta, C, cntl ); } else if ( transa == FLA_TRANSPOSE ) { if ( transb == FLA_NO_TRANSPOSE ) r_val = FLA_Gemm_tn( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_TRANSPOSE ) r_val = FLA_Gemm_tt( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Gemm_tc( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_TRANSPOSE ) r_val = FLA_Gemm_th( alpha, A, B, beta, C, cntl ); } else if ( transa == FLA_CONJ_NO_TRANSPOSE ) { if ( transb == FLA_NO_TRANSPOSE ) r_val = FLA_Gemm_cn( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_TRANSPOSE ) r_val = FLA_Gemm_ct( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Gemm_cc( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_TRANSPOSE ) r_val = FLA_Gemm_ch( alpha, A, B, beta, C, cntl ); } else if ( transa == FLA_CONJ_TRANSPOSE ) { if ( transb == FLA_NO_TRANSPOSE ) r_val = FLA_Gemm_hn( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_TRANSPOSE ) r_val = FLA_Gemm_ht( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_NO_TRANSPOSE ) r_val = FLA_Gemm_hc( alpha, A, B, beta, C, cntl ); else if ( transb == FLA_CONJ_TRANSPOSE ) r_val = FLA_Gemm_hh( alpha, A, B, beta, C, cntl ); } } return r_val; }
FLA_Error FLA_Sylv_hh( FLA_Obj isgn, FLA_Obj A, FLA_Obj B, FLA_Obj C, FLA_Obj scale, fla_sylv_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_EXTERN ) { r_val = FLA_Sylv_hh_blk_ext( isgn, A, B, C, scale ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_EXTERN ) { r_val = FLA_Sylv_hh_unb_ext( isgn, A, B, C, scale ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 ) { r_val = FLA_Sylv_hh_opt_var1( isgn, A, B, C, scale ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Sylv_hh_blk_var1( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Sylv_hh_blk_var2( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Sylv_hh_blk_var3( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Sylv_hh_blk_var4( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 ) { r_val = FLA_Sylv_hh_blk_var5( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT6 ) { r_val = FLA_Sylv_hh_blk_var6( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT7 ) { r_val = FLA_Sylv_hh_blk_var7( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT8 ) { r_val = FLA_Sylv_hh_blk_var8( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT9 ) { r_val = FLA_Sylv_hh_blk_var9( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT10 ) { r_val = FLA_Sylv_hh_blk_var10( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT11 ) { r_val = FLA_Sylv_hh_blk_var11( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT12 ) { r_val = FLA_Sylv_hh_blk_var12( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT13 ) { r_val = FLA_Sylv_hh_blk_var13( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT14 ) { r_val = FLA_Sylv_hh_blk_var14( isgn, A, B, C, scale, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT15 ) { r_val = FLA_Sylv_hh_blk_var15( isgn, A, B, C, scale, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT16 ) { r_val = FLA_Sylv_hh_blk_var16( isgn, A, B, C, scale, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT17 ) { r_val = FLA_Sylv_hh_blk_var17( isgn, A, B, C, scale, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT18 ) { r_val = FLA_Sylv_hh_blk_var18( isgn, A, B, C, scale, cntl ); } else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Eig_gest_nu( FLA_Obj A, FLA_Obj Y, FLA_Obj B, fla_eig_gest_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_EXTERN ) { r_val = FLA_Eig_gest_nu_blk_ext( A, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_EXTERN ) { r_val = FLA_Eig_gest_nu_unb_ext( A, B ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 ) { r_val = FLA_Eig_gest_nu_unb_var1( A, Y, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 ) { r_val = FLA_Eig_gest_nu_unb_var2( A, Y, B ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 ) { //r_val = FLA_Eig_gest_nu_unb_var3( A, Y, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT4 ) { r_val = FLA_Eig_gest_nu_unb_var4( A, Y, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT5 ) { r_val = FLA_Eig_gest_nu_unb_var5( A, Y, B ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 ) { r_val = FLA_Eig_gest_nu_opt_var1( A, Y, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 ) { r_val = FLA_Eig_gest_nu_opt_var2( A, Y, B ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT3 ) { //r_val = FLA_Eig_gest_nu_opt_var3( A, Y, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT4 ) { r_val = FLA_Eig_gest_nu_opt_var4( A, Y, B ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT5 ) { r_val = FLA_Eig_gest_nu_opt_var5( A, Y, B ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Eig_gest_nu_blk_var1( A, Y, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Eig_gest_nu_blk_var2( A, Y, B, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { //r_val = FLA_Eig_gest_nu_blk_var3( A, Y, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Eig_gest_nu_blk_var4( A, Y, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 ) { r_val = FLA_Eig_gest_nu_blk_var5( A, Y, B, cntl ); } else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }
FLA_Error FLA_Apply_Q_UT_internal( FLA_Side side, FLA_Trans trans, FLA_Direct direct, FLA_Store storev, FLA_Obj A, FLA_Obj T, FLA_Obj W, FLA_Obj B, fla_apqut_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_Apply_Q_UT_internal_check( side, trans, direct, storev, A, T, W, B, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_MATRIX && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { // Recurse r_val = FLA_Apply_Q_UT_internal( side, trans, direct, storev, *FLASH_OBJ_PTR_AT( A ), *FLASH_OBJ_PTR_AT( T ), *FLASH_OBJ_PTR_AT( W ), *FLASH_OBJ_PTR_AT( B ), flash_apqut_cntl ); } else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Apply_Q_UT( side, trans, direct, storev, A, T, W, B, cntl ); } else { if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && !FLASH_Queue_get_enabled( ) ) { // Execute leaf. cntl = fla_apqut_cntl_leaf; } if ( side == FLA_LEFT ) { if ( trans == FLA_NO_TRANSPOSE ) { if ( direct == FLA_FORWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_lnfc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_lnfr( A, T, W, B, cntl ); } else if ( direct == FLA_BACKWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_lnbc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_lnbr( A, T, W, B, cntl ); } } else if ( trans == FLA_TRANSPOSE || trans == FLA_CONJ_TRANSPOSE ) { if ( direct == FLA_FORWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_lhfc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_lhfr( A, T, W, B, cntl ); } else if ( direct == FLA_BACKWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_lhbc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_lhbr( A, T, W, B, cntl ); } } } else if ( side == FLA_RIGHT ) { if ( trans == FLA_NO_TRANSPOSE ) { if ( direct == FLA_FORWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_rnfc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_rnfr( A, T, W, B, cntl ); } else if ( direct == FLA_BACKWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_rnbc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_rnbr( A, T, W, B, cntl ); } } else if ( trans == FLA_TRANSPOSE || trans == FLA_CONJ_TRANSPOSE ) { if ( direct == FLA_FORWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_rhfc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_rhfr( A, T, W, B, cntl ); } else if ( direct == FLA_BACKWARD ) { if ( storev == FLA_COLUMNWISE ) r_val = FLA_Apply_Q_UT_rhbc( A, T, W, B, cntl ); else if ( storev == FLA_ROWWISE ) r_val = FLA_Apply_Q_UT_rhbr( A, T, W, B, cntl ); } } } } return r_val; }
FLA_Error FLA_Copy_internal( FLA_Obj A, FLA_Obj B, fla_copy_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) FLA_Copy_internal_check( A, B, cntl ); if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_MATRIX && FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { // Recurse r_val = FLA_Copy_internal( *FLASH_OBJ_PTR_AT( A ), *FLASH_OBJ_PTR_AT( B ), flash_copy_cntl ); } else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && FLASH_Queue_get_enabled( ) ) { // Enqueue ENQUEUE_FLASH_Copy( A, B, cntl ); } else { if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER && FLA_Obj_elemtype( A ) == FLA_SCALAR && !FLASH_Queue_get_enabled( ) ) { // Execute leaf cntl = flash_copy_cntl_blas; } // Parameter combinations if ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM ) { r_val = FLA_Copy_task( A, B, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Copy_blk_var1( A, B, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Copy_blk_var2( A, B, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Copy_blk_var3( A, B, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT4 ) { r_val = FLA_Copy_blk_var4( A, B, cntl ); } #endif else { r_val = FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } } return r_val; }
FLA_Error FLA_Chol_l( FLA_Obj A, fla_chol_t* cntl ) { FLA_Error r_val = FLA_SUCCESS; if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_EXTERN ) { r_val = FLA_Chol_l_blk_ext( A ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_EXTERN ) { r_val = FLA_Chol_l_unb_ext( A ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT1 ) { r_val = FLA_Chol_l_opt_var1( A ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT2 ) { r_val = FLA_Chol_l_opt_var2( A ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNB_OPT_VARIANT3 ) { r_val = FLA_Chol_l_opt_var3( A ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 ) { r_val = FLA_Chol_l_blk_var1( A, cntl ); } else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 ) { r_val = FLA_Chol_l_blk_var2( A, cntl ); } #endif else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT3 ) { r_val = FLA_Chol_l_blk_var3( A, cntl ); } #ifdef FLA_ENABLE_NON_CRITICAL_CODE else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT1 ) { r_val = FLA_Chol_l_unb_var1( A ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT2 ) { r_val = FLA_Chol_l_unb_var2( A ); } else if ( FLA_Cntl_variant( cntl ) == FLA_UNBLOCKED_VARIANT3 ) { r_val = FLA_Chol_l_unb_var3( A ); } #endif else { FLA_Check_error_code( FLA_NOT_YET_IMPLEMENTED ); } return r_val; }