FLA_Gemv.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_Gemv_internal (FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t *cntl)
FLA_Error FLA_Gemv_c (FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t *cntl)
FLA_Error FLA_Gemv_n (FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t *cntl)
FLA_Error FLA_Gemv_t (FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t *cntl)


Function Documentation

FLA_Error FLA_Gemv_c ( FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y,
fla_gemv_t cntl 
)

References FLA_Gemv_c_blk_var1(), FLA_Gemv_c_blk_var2(), FLA_Gemv_c_blk_var5(), FLA_Gemv_c_blk_var6(), and FLA_Gemv_c_task().

Referenced by FLA_Gemv_internal().

00036 {
00037     FLA_Error r_val = FLA_SUCCESS;
00038     
00039     if      ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
00040     {
00041         r_val = FLA_Gemv_c_task( alpha, A, x, beta, y, cntl );
00042     }
00043     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
00044     {
00045         r_val = FLA_Gemv_c_blk_var1( alpha, A, x, beta, y, cntl );
00046     }
00047 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
00048     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
00049     {
00050         r_val = FLA_Gemv_c_blk_var2( alpha, A, x, beta, y, cntl );
00051     }
00052 #endif
00053     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 )
00054     {
00055         r_val = FLA_Gemv_c_blk_var5( alpha, A, x, beta, y, cntl );
00056     }
00057 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
00058     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT6 )
00059     {
00060         r_val = FLA_Gemv_c_blk_var6( alpha, A, x, beta, y, cntl );
00061     }
00062 #endif  
00063 
00064     return r_val;
00065 }

FLA_Error FLA_Gemv_internal ( FLA_Trans  transa,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y,
fla_gemv_t cntl 
)

References FLA_Check_error_level(), FLA_Gemv_c(), FLA_Gemv_internal(), FLA_Gemv_internal_check(), FLA_Gemv_n(), FLA_Gemv_t(), FLA_Obj_elemtype(), and FLASH_Queue_get_enabled().

00039 {
00040     FLA_Error r_val = FLA_SUCCESS;
00041 
00042     if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
00043         FLA_Gemv_internal_check( transa, alpha, A, x, beta, y, cntl );
00044 
00045     if      ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
00046               FLA_Obj_elemtype( A ) == FLA_MATRIX &&
00047               FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
00048     {
00049         // Recurse
00050         r_val = FLA_Gemv_internal( transa, 
00051                                    alpha, 
00052                                    *FLASH_OBJ_PTR_AT( A ), 
00053                                    *FLASH_OBJ_PTR_AT( x ), 
00054                                    beta, 
00055                                    *FLASH_OBJ_PTR_AT( y ), 
00056                                    flash_gemv_cntl_fm_rp );
00057     }
00058     else if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
00059               FLA_Obj_elemtype( A ) == FLA_SCALAR &&
00060               FLASH_Queue_get_enabled( ) )
00061     {
00062         // Enqueue
00063         ENQUEUE_FLASH_Gemv( transa, alpha, A, x, beta, y, cntl );
00064     }
00065     else
00066     {
00067         if ( FLA_Cntl_matrix_type( cntl ) == FLA_HIER &&
00068              FLA_Obj_elemtype( A ) == FLA_SCALAR &&
00069              !FLASH_Queue_get_enabled( ) )
00070         {
00071             // Execute leaf
00072             cntl = flash_gemv_cntl_blas;
00073         }
00074 
00075         // Parameter combinations
00076         if      ( transa == FLA_NO_TRANSPOSE )
00077         {
00078             r_val = FLA_Gemv_n( alpha, A, x, beta, y, cntl );
00079         }
00080         else if ( transa == FLA_TRANSPOSE )
00081         {
00082             r_val = FLA_Gemv_t( alpha, A, x, beta, y, cntl );
00083         }
00084         else if ( transa == FLA_CONJ_TRANSPOSE )
00085         {
00086             r_val = FLA_Gemv_c( alpha, A, x, beta, y, cntl );
00087         }
00088     }
00089 
00090     return r_val;
00091 }

FLA_Error FLA_Gemv_n ( FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y,
fla_gemv_t cntl 
)

References FLA_Gemv_n_blk_var1(), FLA_Gemv_n_blk_var2(), FLA_Gemv_n_blk_var5(), FLA_Gemv_n_blk_var6(), and FLA_Gemv_n_task().

Referenced by FLA_Gemv_internal().

00036 {
00037     FLA_Error r_val = FLA_SUCCESS;
00038     
00039     if      ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
00040     {
00041         r_val = FLA_Gemv_n_task( alpha, A, x, beta, y, cntl );
00042     }
00043     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
00044     {
00045         r_val = FLA_Gemv_n_blk_var1( alpha, A, x, beta, y, cntl );
00046     }
00047 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
00048     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
00049     {
00050         r_val = FLA_Gemv_n_blk_var2( alpha, A, x, beta, y, cntl );
00051     }
00052 #endif
00053     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 )
00054     {
00055         r_val = FLA_Gemv_n_blk_var5( alpha, A, x, beta, y, cntl );
00056     }
00057 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
00058     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT6 )
00059     {
00060         r_val = FLA_Gemv_n_blk_var6( alpha, A, x, beta, y, cntl );
00061     }
00062 #endif  
00063 
00064     return r_val;
00065 }

FLA_Error FLA_Gemv_t ( FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y,
fla_gemv_t cntl 
)

References FLA_Gemv_t_blk_var1(), FLA_Gemv_t_blk_var2(), FLA_Gemv_t_blk_var5(), FLA_Gemv_t_blk_var6(), and FLA_Gemv_t_task().

Referenced by FLA_Gemv_internal().

00036 {
00037     FLA_Error r_val = FLA_SUCCESS;
00038     
00039     if      ( FLA_Cntl_variant( cntl ) == FLA_SUBPROBLEM )
00040     {
00041         r_val = FLA_Gemv_t_task( alpha, A, x, beta, y, cntl );
00042     }
00043     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT1 )
00044     {
00045         r_val = FLA_Gemv_t_blk_var1( alpha, A, x, beta, y, cntl );
00046     }
00047 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
00048     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT2 )
00049     {
00050         r_val = FLA_Gemv_t_blk_var2( alpha, A, x, beta, y, cntl );
00051     }
00052 #endif
00053     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT5 )
00054     {
00055         r_val = FLA_Gemv_t_blk_var5( alpha, A, x, beta, y, cntl );
00056     }
00057 #ifdef FLA_ENABLE_NON_CRITICAL_CODE
00058     else if ( FLA_Cntl_variant( cntl ) == FLA_BLOCKED_VARIANT6 )
00059     {
00060         r_val = FLA_Gemv_t_blk_var6( alpha, A, x, beta, y, cntl );
00061     }
00062 #endif  
00063 
00064     return r_val;
00065 }


Generated on Mon Jul 6 05:45:53 2009 for libflame by  doxygen 1.5.9