libflame  revision_anchor
Functions
FLA_blas2_prototypes.h File Reference

(r)

Go to the source code of this file.

Functions

FLA_Error FLA_Gemv (FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Gemvc (FLA_Trans transa, FLA_Conj conjx, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Ger (FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Gerc (FLA_Conj conjx, FLA_Conj conjy, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Hemv (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Hemvc (FLA_Uplo uplo, FLA_Conj conja, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Her (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Herc (FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Her2 (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Her2c (FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Symv (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Syr (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Syr2 (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Trmv (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
 
FLA_Error FLA_Trmvsx (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Trsv (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
 
FLA_Error FLA_Trsvsx (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Gemv_task (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_Trsv_task (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 
FLA_Error FLA_Gemv_h_task (FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t *cntl)
 
FLA_Error FLA_Gemv_n_task (FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t *cntl)
 
FLA_Error FLA_Gemv_t_task (FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y, fla_gemv_t *cntl)
 
FLA_Error FLA_Trsv_lc_task (FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 
FLA_Error FLA_Trsv_ln_task (FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 
FLA_Error FLA_Trsv_lt_task (FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 
FLA_Error FLA_Trsv_uc_task (FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 
FLA_Error FLA_Trsv_un_task (FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 
FLA_Error FLA_Trsv_ut_task (FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 
FLA_Error FLA_Gemv_external (FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Gemvc_external (FLA_Trans transa, FLA_Conj conjx, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Ger_external (FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Gerc_external (FLA_Conj conjx, FLA_Conj conjy, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Hemv_external (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Hemvc_external (FLA_Uplo uplo, FLA_Conj conja, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Her_external (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Herc_external (FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Her2_external (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Her2c_external (FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Symv_external (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Syr_external (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Syr2_external (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Trmv_external (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
 
FLA_Error FLA_Trmvsx_external (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Trsv_external (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
 
FLA_Error FLA_Trsvsx_external (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Gemv_external_gpu (FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, void *A_gpu, FLA_Obj x, void *x_gpu, FLA_Obj beta, FLA_Obj y, void *y_gpu)
 
FLA_Error FLA_Trsv_external_gpu (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, void *A_gpu, FLA_Obj x, void *x_gpu)
 
FLA_Error FLA_Gemv_check (FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Gemvc_check (FLA_Trans transa, FLA_Conj conjx, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Ger_check (FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Gerc_check (FLA_Conj conjx, FLA_Conj conjy, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Hemv_check (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Hemvc_check (FLA_Uplo uplo, FLA_Conj conja, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Her_check (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Herc_check (FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Her2_check (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Her2c_check (FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Symv_check (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Syr_check (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
 
FLA_Error FLA_Syr2_check (FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
 
FLA_Error FLA_Trmv_check (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
 
FLA_Error FLA_Trmvsx_check (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Trsv_check (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
 
FLA_Error FLA_Trsvsx_check (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
 
FLA_Error FLA_Gemv_internal_check (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_Trsv_internal_check (FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
 

Function Documentation

◆ FLA_Gemv()

FLA_Error FLA_Gemv ( FLA_Trans  transa,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_error_level(), FLA_Gemv_check(), FLA_Gemv_external(), and FLA_Gemv_internal().

Referenced by FLA_Bidiag_UT_u_step_unb_var1(), FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Hess_UT_step_unb_var1(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), FLA_Hess_UT_step_unb_var4(), FLA_Hess_UT_step_unb_var5(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_l_step_unb_var3().

16 {
17  FLA_Error r_val;
18 
19  // Check parameters.
20  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
21  FLA_Gemv_check( transa, alpha, A, x, beta, y );
22 
23 #ifdef FLA_ENABLE_BLAS2_FRONT_END_CNTL_TREES
24  // Invoke FLA_Gemv_internal() with flat control tree that simply calls
25  // external wrapper.
26  r_val = FLA_Gemv_internal( transa, alpha, A, x, beta, y, fla_gemv_cntl_blas );
27 
28 #else
29  r_val = FLA_Gemv_external( transa, alpha, A, x, beta, y );
30 #endif
31 
32  return r_val;
33 }
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)
Definition: FLA_Gemv_internal.c:16
FLA_Error FLA_Gemv_external(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_external.c:13
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Gemv_check(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_check.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
fla_gemv_t * fla_gemv_cntl_blas
Definition: FLA_Gemv_cntl_init.c:13

◆ FLA_Gemv_check()

FLA_Error FLA_Gemv_check ( FLA_Trans  transa,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), and FLA_Check_valid_trans().

Referenced by FLA_Gemv(), FLA_Gemv_external(), FLA_Gemv_external_gpu(), and FLASH_Gemv().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_trans( transa );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_floating_object( A );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_nonconstant_object( A );
24  FLA_Check_error_code( e_val );
25 
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_consistent_object_datatype( A, alpha );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_consistent_object_datatype( A, beta );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( x );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_vector( y );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_scalar( alpha );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_if_scalar( beta );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_matrix_vector_dims( transa, A, x, y );
51  FLA_Check_error_code( e_val );
52 
53  return FLA_SUCCESS;
54 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
FLA_Error FLA_Check_valid_trans(FLA_Trans trans)
Definition: FLA_Check.c:87
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Gemv_external()

FLA_Error FLA_Gemv_external ( FLA_Trans  transa,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References bl1_cgemv(), bl1_dgemv(), bl1_sgemv(), bl1_zgemv(), FLA_Check_error_level(), FLA_Gemv_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_conj(), FLA_Param_map_flame_to_blis_trans(), and FLA_Scal_external().

Referenced by FLA_Accum_T_UT_fc_unb_var1(), FLA_Apply_H2_UT_r_unb_var1(), FLA_CAQR2_UT_unb_var1(), FLA_Gemm_cn_unb_var3(), FLA_Gemm_cn_unb_var4(), FLA_Gemm_ct_unb_var3(), FLA_Gemm_ct_unb_var4(), FLA_Gemm_hn_unb_var3(), FLA_Gemm_hn_unb_var4(), FLA_Gemm_ht_unb_var3(), FLA_Gemm_ht_unb_var4(), FLA_Gemm_nc_unb_var1(), FLA_Gemm_nc_unb_var2(), FLA_Gemm_nh_unb_var1(), FLA_Gemm_nh_unb_var2(), FLA_Gemm_nn_unb_var1(), FLA_Gemm_nn_unb_var2(), FLA_Gemm_nn_unb_var3(), FLA_Gemm_nn_unb_var4(), FLA_Gemm_nt_unb_var1(), FLA_Gemm_nt_unb_var2(), FLA_Gemm_nt_unb_var3(), FLA_Gemm_nt_unb_var4(), FLA_Gemm_tc_unb_var1(), FLA_Gemm_tc_unb_var2(), FLA_Gemm_th_unb_var1(), FLA_Gemm_th_unb_var2(), FLA_Gemm_tn_unb_var1(), FLA_Gemm_tn_unb_var2(), FLA_Gemm_tn_unb_var3(), FLA_Gemm_tn_unb_var4(), FLA_Gemm_tt_unb_var1(), FLA_Gemm_tt_unb_var2(), FLA_Gemm_tt_unb_var3(), FLA_Gemm_tt_unb_var4(), FLA_Gemv(), FLA_Gemv_h_task(), FLA_Gemv_n_task(), FLA_Gemv_t_task(), FLA_Gemv_task(), FLA_Hemm_ll_unb_var1(), FLA_Hemm_ll_unb_var2(), FLA_Hemm_ll_unb_var6(), FLA_Hemm_ll_unb_var7(), FLA_Hemm_lu_unb_var2(), FLA_Hemm_lu_unb_var3(), FLA_Hemm_lu_unb_var5(), FLA_Hemm_lu_unb_var6(), FLA_Hemm_rl_unb_var2(), FLA_Hemm_rl_unb_var3(), FLA_Hemm_rl_unb_var5(), FLA_Hemm_rl_unb_var6(), FLA_Hemm_ru_unb_var1(), FLA_Hemm_ru_unb_var2(), FLA_Hemm_ru_unb_var6(), FLA_Hemm_ru_unb_var7(), FLA_Her2k_lh_unb_var2(), FLA_Her2k_lh_unb_var3(), FLA_Her2k_lh_unb_var4(), FLA_Her2k_lh_unb_var5(), FLA_Her2k_lh_unb_var6(), FLA_Her2k_lh_unb_var7(), FLA_Her2k_ln_unb_var1(), FLA_Her2k_ln_unb_var2(), FLA_Her2k_ln_unb_var3(), FLA_Her2k_ln_unb_var6(), FLA_Her2k_ln_unb_var7(), FLA_Her2k_ln_unb_var8(), FLA_Her2k_uh_unb_var2(), FLA_Her2k_uh_unb_var3(), FLA_Her2k_uh_unb_var4(), FLA_Her2k_uh_unb_var5(), FLA_Her2k_uh_unb_var6(), FLA_Her2k_uh_unb_var7(), FLA_Her2k_un_unb_var1(), FLA_Her2k_un_unb_var2(), FLA_Her2k_un_unb_var3(), FLA_Her2k_un_unb_var6(), FLA_Her2k_un_unb_var7(), FLA_Her2k_un_unb_var8(), FLA_Herk_lh_unb_var2(), FLA_Herk_lh_unb_var3(), FLA_Herk_ln_unb_var4(), FLA_Herk_uh_unb_var2(), FLA_Herk_uh_unb_var4(), FLA_Herk_un_unb_var1(), FLA_Herk_un_unb_var3(), FLA_LU_nopiv_unb_var2(), FLA_LU_nopiv_unb_var3(), FLA_LU_nopiv_unb_var4(), FLA_LU_piv_unb_var3(), FLA_LU_piv_unb_var3b(), FLA_LU_piv_unb_var4(), FLA_QR2_UT_unb_var1(), FLA_QR_UT_piv_unb_var1(), FLA_QR_UT_piv_unb_var2(), FLA_QR_UT_unb_var2(), FLA_Symm_ll_unb_var1(), FLA_Symm_ll_unb_var2(), FLA_Symm_ll_unb_var3(), FLA_Symm_ll_unb_var5(), FLA_Symm_ll_unb_var6(), FLA_Symm_ll_unb_var7(), FLA_Symm_lu_unb_var1(), FLA_Symm_lu_unb_var2(), FLA_Symm_lu_unb_var3(), FLA_Symm_lu_unb_var5(), FLA_Symm_lu_unb_var6(), FLA_Symm_lu_unb_var7(), FLA_Symm_rl_unb_var1(), FLA_Symm_rl_unb_var2(), FLA_Symm_rl_unb_var3(), FLA_Symm_rl_unb_var5(), FLA_Symm_rl_unb_var6(), FLA_Symm_rl_unb_var7(), FLA_Symm_ru_unb_var1(), FLA_Symm_ru_unb_var2(), FLA_Symm_ru_unb_var3(), FLA_Symm_ru_unb_var5(), FLA_Symm_ru_unb_var6(), FLA_Symm_ru_unb_var7(), FLA_Syr2k_ln_unb_var1(), FLA_Syr2k_ln_unb_var2(), FLA_Syr2k_ln_unb_var3(), FLA_Syr2k_ln_unb_var4(), FLA_Syr2k_ln_unb_var5(), FLA_Syr2k_ln_unb_var6(), FLA_Syr2k_ln_unb_var7(), FLA_Syr2k_ln_unb_var8(), FLA_Syr2k_lt_unb_var1(), FLA_Syr2k_lt_unb_var2(), FLA_Syr2k_lt_unb_var3(), FLA_Syr2k_lt_unb_var4(), FLA_Syr2k_lt_unb_var5(), FLA_Syr2k_lt_unb_var6(), FLA_Syr2k_lt_unb_var7(), FLA_Syr2k_lt_unb_var8(), FLA_Syr2k_un_unb_var1(), FLA_Syr2k_un_unb_var2(), FLA_Syr2k_un_unb_var3(), FLA_Syr2k_un_unb_var4(), FLA_Syr2k_un_unb_var5(), FLA_Syr2k_un_unb_var6(), FLA_Syr2k_un_unb_var7(), FLA_Syr2k_un_unb_var8(), FLA_Syr2k_ut_unb_var1(), FLA_Syr2k_ut_unb_var2(), FLA_Syr2k_ut_unb_var3(), FLA_Syr2k_ut_unb_var4(), FLA_Syr2k_ut_unb_var5(), FLA_Syr2k_ut_unb_var6(), FLA_Syr2k_ut_unb_var7(), FLA_Syr2k_ut_unb_var8(), FLA_Syrk_ln_unb_var1(), FLA_Syrk_ln_unb_var2(), FLA_Syrk_ln_unb_var3(), FLA_Syrk_ln_unb_var4(), FLA_Syrk_lt_unb_var1(), FLA_Syrk_lt_unb_var2(), FLA_Syrk_lt_unb_var3(), FLA_Syrk_lt_unb_var4(), FLA_Syrk_un_unb_var1(), FLA_Syrk_un_unb_var2(), FLA_Syrk_un_unb_var3(), FLA_Syrk_un_unb_var4(), FLA_Syrk_ut_unb_var1(), FLA_Syrk_ut_unb_var2(), FLA_Syrk_ut_unb_var3(), FLA_Syrk_ut_unb_var4(), FLA_Trmm_lln_unb_var1(), FLA_Trmm_llt_unb_var1(), FLA_Trmm_lun_unb_var1(), FLA_Trmm_lut_unb_var1(), FLA_Trmm_rln_unb_var1(), FLA_Trmm_rlt_unb_var1(), FLA_Trmm_run_unb_var1(), FLA_Trmm_rut_unb_var1(), FLA_Trsm_lln_unb_var1(), FLA_Trsm_llt_unb_var1(), FLA_Trsm_lun_unb_var1(), FLA_Trsm_lut_unb_var1(), FLA_Trsm_rln_unb_var1(), FLA_Trsm_rlt_unb_var1(), FLA_Trsm_run_unb_var1(), and FLA_Trsm_rut_unb_var1().

14 {
15  FLA_Datatype datatype;
16  int m_A, n_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  trans1_t blis_transa;
21  conj1_t blis_conjx;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Gemv_check( transa, alpha, A, x, beta, y );
25 
26  if ( FLA_Obj_has_zero_dim( A ) )
27  {
28  FLA_Scal_external( beta, y );
29  return FLA_SUCCESS;
30  }
31 
32  datatype = FLA_Obj_datatype( A );
33 
34  m_A = FLA_Obj_length( A );
35  n_A = FLA_Obj_width( A );
36  rs_A = FLA_Obj_row_stride( A );
37  cs_A = FLA_Obj_col_stride( A );
38 
39  inc_x = FLA_Obj_vector_inc( x );
40  inc_y = FLA_Obj_vector_inc( y );
41 
42  FLA_Param_map_flame_to_blis_trans( transa, &blis_transa );
43  FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conjx );
44 
45 
46  switch( datatype ){
47 
48  case FLA_FLOAT:
49  {
50  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
51  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
52  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
53  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
54  float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
55 
56  bl1_sgemv( blis_transa,
57  blis_conjx,
58  m_A,
59  n_A,
60  buff_alpha,
61  buff_A, rs_A, cs_A,
62  buff_x, inc_x,
63  buff_beta,
64  buff_y, inc_y );
65 
66  break;
67  }
68 
69  case FLA_DOUBLE:
70  {
71  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
72  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
73  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
74  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
75  double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
76 
77  bl1_dgemv( blis_transa,
78  blis_conjx,
79  m_A,
80  n_A,
81  buff_alpha,
82  buff_A, rs_A, cs_A,
83  buff_x, inc_x,
84  buff_beta,
85  buff_y, inc_y );
86 
87  break;
88  }
89 
90  case FLA_COMPLEX:
91  {
92  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
93  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
94  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
95  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
96  scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
97 
98  bl1_cgemv( blis_transa,
99  blis_conjx,
100  m_A,
101  n_A,
102  buff_alpha,
103  buff_A, rs_A, cs_A,
104  buff_x, inc_x,
105  buff_beta,
106  buff_y, inc_y );
107 
108  break;
109  }
110 
111  case FLA_DOUBLE_COMPLEX:
112  {
113  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
114  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
115  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
116  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
117  dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
118 
119  bl1_zgemv( blis_transa,
120  blis_conjx,
121  m_A,
122  n_A,
123  buff_alpha,
124  buff_A, rs_A, cs_A,
125  buff_x, inc_x,
126  buff_beta,
127  buff_y, inc_y );
128 
129  break;
130  }
131 
132  }
133 
134  return FLA_SUCCESS;
135 }
void bl1_dgemv(trans1_t transa, conj1_t conjx, int m, int n, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition: bl1_gemv.c:69
void FLA_Param_map_flame_to_blis_trans(FLA_Trans trans, trans1_t *blis_trans)
Definition: FLA_Param.c:245
FLA_Error FLA_Scal_external(FLA_Obj alpha, FLA_Obj A)
Definition: FLA_Scal_external.c:13
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
trans1_t
Definition: blis_type_defs.h:52
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
void bl1_sgemv(trans1_t transa, conj1_t conjx, int m, int n, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition: bl1_gemv.c:13
Definition: blis_type_defs.h:132
void bl1_zgemv(trans1_t transa, conj1_t conjx, int m, int n, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition: bl1_gemv.c:255
FLA_Error FLA_Gemv_check(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_check.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
void bl1_cgemv(trans1_t transa, conj1_t conjx, int m, int n, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition: bl1_gemv.c:125
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Gemv_external_gpu()

FLA_Error FLA_Gemv_external_gpu ( FLA_Trans  transa,
FLA_Obj  alpha,
FLA_Obj  A,
void *  A_gpu,
FLA_Obj  x,
void *  x_gpu,
FLA_Obj  beta,
FLA_Obj  y,
void *  y_gpu 
)

References FLA_Check_error_level(), FLA_Gemv_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_width(), and FLA_Param_map_flame_to_netlib_trans().

Referenced by FLASH_Queue_exec_task_gpu().

18 {
19  FLA_Datatype datatype;
20  int m_A, n_A;
21  int ldim_A;
22  int inc_x;
23  int inc_y;
24  char blas_transa;
25 
26  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
27  FLA_Gemv_check( transa, alpha, A, x, beta, y );
28 
29  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
30 
31  datatype = FLA_Obj_datatype( A );
32 
33  m_A = FLA_Obj_length( A );
34  n_A = FLA_Obj_width( A );
35  ldim_A = FLA_Obj_length( A );
36 
37  inc_x = 1;
38  inc_y = 1;
39 
40  FLA_Param_map_flame_to_netlib_trans( transa, &blas_transa );
41 
42 
43  switch( datatype ){
44 
45  case FLA_FLOAT:
46  {
47  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
48  float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
49 
50  sgemv_( blas_transa,
51  m_A,
52  n_A,
53  *buff_alpha,
54  ( float * ) A_gpu, ldim_A,
55  ( float * ) x_gpu, inc_x,
56  *buff_beta,
57  ( float * ) y_gpu, inc_y );
58 
59  break;
60  }
61 
62  case FLA_DOUBLE:
63  {
64  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
65  double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
66 
67  cublasDgemv( blas_transa,
68  m_A,
69  n_A,
70  *buff_alpha,
71  ( double * ) A_gpu, ldim_A,
72  ( double * ) x_gpu, inc_x,
73  *buff_beta,
74  ( double * ) y_gpu, inc_y );
75 
76  break;
77  }
78 
79  case FLA_COMPLEX:
80  {
81  cuComplex *buff_alpha = ( cuComplex * ) FLA_COMPLEX_PTR( alpha );
82  cuComplex *buff_beta = ( cuComplex * ) FLA_COMPLEX_PTR( beta );
83 
84  cublasCgemv( blas_transa,
85  m_A,
86  n_A,
87  *buff_alpha,
88  ( cuComplex * ) A_gpu, ldim_A,
89  ( cuComplex * ) x_gpu, inc_x,
90  *buff_beta,
91  ( cuComplex * ) y_gpu, inc_y );
92 
93  break;
94  }
95 
96  case FLA_DOUBLE_COMPLEX:
97  {
98  cuDoubleComplex *buff_alpha = ( cuDoubleComplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
99  cuDoubleComplex *buff_beta = ( cuDoubleComplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
100 
101  cublasZgemv( blas_transa,
102  m_A,
103  n_A,
104  *buff_alpha,
105  ( cuDoubleComplex * ) A_gpu, ldim_A,
106  ( cuDoubleComplex * ) x_gpu, inc_x,
107  *buff_beta,
108  ( cuDoubleComplex * ) y_gpu, inc_y );
109 
110  break;
111  }
112 
113  }
114 
115  return FLA_SUCCESS;
116 }
void FLA_Param_map_flame_to_netlib_trans(FLA_Trans trans, void *blas_trans)
Definition: FLA_Param.c:15
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
FLA_Error FLA_Gemv_check(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_check.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116

◆ FLA_Gemv_h_task()

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

References FLA_Gemv_external().

Referenced by FLA_Gemv_h().

19 {
20  return FLA_Gemv_external( FLA_CONJ_TRANSPOSE, alpha, A, x, beta, y );
21 }
FLA_Error FLA_Gemv_external(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_external.c:13

◆ FLA_Gemv_internal_check()

FLA_Error FLA_Gemv_internal_check ( 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_identical_object_elemtype(), FLA_Check_matrix_vector_dims(), and FLA_Check_null_pointer().

Referenced by FLA_Gemv_internal().

14 {
15  FLA_Error e_val;
16 
17  // Abort if the control structure is NULL.
18  e_val = FLA_Check_null_pointer( ( void* ) cntl );
19  FLA_Check_error_code( e_val );
20 
21  // Verify that the object element types are identical.
23  FLA_Check_error_code( e_val );
24 
26  FLA_Check_error_code( e_val );
27 
28  // Verify conformality between all the objects. This check works regardless
29  // of whether the element type is FLA_MATRIX or FLA_SCALAR because the
30  // element length and width are used instead of scalar length and width.
31  e_val = FLA_Check_matrix_vector_dims( transa, A, x, y );
32  FLA_Check_error_code( e_val );
33 
34  return FLA_SUCCESS;
35 }
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_identical_object_elemtype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:987
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_null_pointer(void *ptr)
Definition: FLA_Check.c:518

◆ FLA_Gemv_n_task()

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

References FLA_Gemv_external().

Referenced by FLA_Gemv_n().

24 {
25  return FLA_Gemv_external( FLA_NO_TRANSPOSE, alpha, A, x, beta, y );
26 }
FLA_Error FLA_Gemv_external(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_external.c:13

◆ FLA_Gemv_t_task()

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

References FLA_Gemv_external().

Referenced by FLA_Gemv_t().

29 {
30  return FLA_Gemv_external( FLA_TRANSPOSE, alpha, A, x, beta, y );
31 }
FLA_Error FLA_Gemv_external(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_external.c:13

◆ FLA_Gemv_task()

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

References FLA_Gemv_external().

Referenced by FLASH_Queue_exec_task(), and FLASH_Queue_exec_task_gpu().

14 {
15  return FLA_Gemv_external( transa, alpha, A, x, beta, y );
16 }
FLA_Error FLA_Gemv_external(FLA_Trans transa, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemv_external.c:13

◆ FLA_Gemvc()

FLA_Error FLA_Gemvc ( FLA_Trans  transa,
FLA_Conj  conjx,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Gemvc_external().

Referenced by FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Bidiag_UT_u_step_unb_var4(), FLA_Bidiag_UT_u_step_unb_var5(), FLA_Hess_UT_step_unb_var4(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), and FLA_Tridiag_UT_l_step_unb_var3().

14 {
15  return FLA_Gemvc_external( transa, conjx, alpha, A, x, beta, y );
16 }
FLA_Error FLA_Gemvc_external(FLA_Trans transa, FLA_Conj conjx, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemvc_external.c:13

◆ FLA_Gemvc_check()

FLA_Error FLA_Gemvc_check ( FLA_Trans  transa,
FLA_Conj  conjx,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_valid_conj(), and FLA_Check_valid_trans().

Referenced by FLA_Gemvc_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_trans( transa );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_conj( conjx );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_floating_object( A );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_nonconstant_object( A );
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_consistent_object_datatype( A, alpha );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_consistent_object_datatype( A, beta );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_vector( x );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_vector( y );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_if_scalar( alpha );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_if_scalar( beta );
51  FLA_Check_error_code( e_val );
52 
53  e_val = FLA_Check_matrix_vector_dims( transa, A, x, y );
54  FLA_Check_error_code( e_val );
55 
56  return FLA_SUCCESS;
57 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
FLA_Error FLA_Check_valid_trans(FLA_Trans trans)
Definition: FLA_Check.c:87
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_valid_conj(FLA_Conj conj)
Definition: FLA_Check.c:112
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Gemvc_external()

FLA_Error FLA_Gemvc_external ( FLA_Trans  transa,
FLA_Conj  conjx,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References bl1_cgemv(), bl1_dgemv(), bl1_sgemv(), bl1_zgemv(), FLA_Check_error_level(), FLA_Gemvc_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_conj(), FLA_Param_map_flame_to_blis_trans(), and FLA_Scal_external().

Referenced by FLA_Accum_T_UT_fr_unb_var1(), FLA_Apply_H2_UT_l_unb_var1(), FLA_Apply_H2_UT_piv_row(), FLA_Apply_HUD_UT_lh_unb_var1(), FLA_Chol_l_unb_var2(), FLA_Chol_u_unb_var2(), FLA_Eig_gest_il_unb_var2(), FLA_Eig_gest_il_unb_var3(), FLA_Eig_gest_iu_unb_var2(), FLA_Eig_gest_iu_unb_var3(), FLA_Eig_gest_nl_unb_var2(), FLA_Eig_gest_nu_unb_var2(), FLA_Gemm_cc_unb_var1(), FLA_Gemm_cc_unb_var2(), FLA_Gemm_cc_unb_var3(), FLA_Gemm_cc_unb_var4(), FLA_Gemm_ch_unb_var1(), FLA_Gemm_ch_unb_var2(), FLA_Gemm_ch_unb_var3(), FLA_Gemm_ch_unb_var4(), FLA_Gemm_cn_unb_var1(), FLA_Gemm_cn_unb_var2(), FLA_Gemm_ct_unb_var1(), FLA_Gemm_ct_unb_var2(), FLA_Gemm_hc_unb_var1(), FLA_Gemm_hc_unb_var2(), FLA_Gemm_hc_unb_var3(), FLA_Gemm_hc_unb_var4(), FLA_Gemm_hh_unb_var1(), FLA_Gemm_hh_unb_var2(), FLA_Gemm_hh_unb_var3(), FLA_Gemm_hh_unb_var4(), FLA_Gemm_hn_unb_var1(), FLA_Gemm_hn_unb_var2(), FLA_Gemm_ht_unb_var1(), FLA_Gemm_ht_unb_var2(), FLA_Gemm_nc_unb_var3(), FLA_Gemm_nc_unb_var4(), FLA_Gemm_nh_unb_var3(), FLA_Gemm_nh_unb_var4(), FLA_Gemm_tc_unb_var3(), FLA_Gemm_tc_unb_var4(), FLA_Gemm_th_unb_var3(), FLA_Gemm_th_unb_var4(), FLA_Gemvc(), FLA_Hemm_ll_unb_var2(), FLA_Hemm_ll_unb_var3(), FLA_Hemm_ll_unb_var5(), FLA_Hemm_ll_unb_var6(), FLA_Hemm_lu_unb_var1(), FLA_Hemm_lu_unb_var2(), FLA_Hemm_lu_unb_var6(), FLA_Hemm_lu_unb_var7(), FLA_Hemm_rl_unb_var1(), FLA_Hemm_rl_unb_var2(), FLA_Hemm_rl_unb_var6(), FLA_Hemm_rl_unb_var7(), FLA_Hemm_ru_unb_var2(), FLA_Hemm_ru_unb_var3(), FLA_Hemm_ru_unb_var5(), FLA_Hemm_ru_unb_var6(), FLA_Her2k_lh_unb_var1(), FLA_Her2k_lh_unb_var2(), FLA_Her2k_lh_unb_var3(), FLA_Her2k_lh_unb_var6(), FLA_Her2k_lh_unb_var7(), FLA_Her2k_lh_unb_var8(), FLA_Her2k_ln_unb_var2(), FLA_Her2k_ln_unb_var3(), FLA_Her2k_ln_unb_var4(), FLA_Her2k_ln_unb_var5(), FLA_Her2k_ln_unb_var6(), FLA_Her2k_ln_unb_var7(), FLA_Her2k_uh_unb_var1(), FLA_Her2k_uh_unb_var2(), FLA_Her2k_uh_unb_var3(), FLA_Her2k_uh_unb_var6(), FLA_Her2k_uh_unb_var7(), FLA_Her2k_uh_unb_var8(), FLA_Her2k_un_unb_var2(), FLA_Her2k_un_unb_var3(), FLA_Her2k_un_unb_var4(), FLA_Her2k_un_unb_var5(), FLA_Her2k_un_unb_var6(), FLA_Her2k_un_unb_var7(), FLA_Herk_lh_unb_var1(), FLA_Herk_lh_unb_var4(), FLA_Herk_ln_unb_var1(), FLA_Herk_ln_unb_var2(), FLA_Herk_ln_unb_var3(), FLA_Herk_uh_unb_var1(), FLA_Herk_uh_unb_var3(), FLA_Herk_un_unb_var2(), FLA_Herk_un_unb_var4(), FLA_LQ_UT_unb_var2(), FLA_Trmm_llc_unb_var1(), FLA_Trmm_llh_unb_var1(), FLA_Trmm_luc_unb_var1(), FLA_Trmm_luh_unb_var1(), FLA_Trmm_rlc_unb_var1(), FLA_Trmm_rlh_unb_var1(), FLA_Trmm_ruc_unb_var1(), FLA_Trmm_ruh_unb_var1(), FLA_Trsm_llc_unb_var1(), FLA_Trsm_llh_unb_var1(), FLA_Trsm_luc_unb_var1(), FLA_Trsm_luh_unb_var1(), FLA_Trsm_rlc_unb_var1(), FLA_Trsm_rlh_unb_var1(), FLA_Trsm_ruc_unb_var1(), FLA_Trsm_ruh_unb_var1(), FLA_Ttmm_l_unb_var2(), and FLA_Ttmm_u_unb_var2().

14 {
15  FLA_Datatype datatype;
16  int m_A, n_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  trans1_t blis_transa;
21  conj1_t blis_conjx;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Gemvc_check( transa, conjx, alpha, A, x, beta, y );
25 
26  if ( FLA_Obj_has_zero_dim( A ) )
27  {
28  FLA_Scal_external( beta, y );
29  return FLA_SUCCESS;
30  }
31 
32  datatype = FLA_Obj_datatype( A );
33 
34  m_A = FLA_Obj_length( A );
35  n_A = FLA_Obj_width( A );
36  rs_A = FLA_Obj_row_stride( A );
37  cs_A = FLA_Obj_col_stride( A );
38 
39  inc_x = FLA_Obj_vector_inc( x );
40  inc_y = FLA_Obj_vector_inc( y );
41 
42  FLA_Param_map_flame_to_blis_trans( transa, &blis_transa );
43  FLA_Param_map_flame_to_blis_conj( conjx, &blis_conjx );
44 
45 
46  switch( datatype ){
47 
48  case FLA_FLOAT:
49  {
50  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
51  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
52  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
53  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
54  float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
55 
56  bl1_sgemv( blis_transa,
57  blis_conjx,
58  m_A,
59  n_A,
60  buff_alpha,
61  buff_A, rs_A, cs_A,
62  buff_x, inc_x,
63  buff_beta,
64  buff_y, inc_y );
65 
66  break;
67  }
68 
69  case FLA_DOUBLE:
70  {
71  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
72  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
73  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
74  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
75  double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
76 
77  bl1_dgemv( blis_transa,
78  blis_conjx,
79  m_A,
80  n_A,
81  buff_alpha,
82  buff_A, rs_A, cs_A,
83  buff_x, inc_x,
84  buff_beta,
85  buff_y, inc_y );
86 
87  break;
88  }
89 
90  case FLA_COMPLEX:
91  {
92  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
93  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
94  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
95  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
96  scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
97 
98  bl1_cgemv( blis_transa,
99  blis_conjx,
100  m_A,
101  n_A,
102  buff_alpha,
103  buff_A, rs_A, cs_A,
104  buff_x, inc_x,
105  buff_beta,
106  buff_y, inc_y );
107 
108  break;
109  }
110 
111  case FLA_DOUBLE_COMPLEX:
112  {
113  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
114  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
115  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
116  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
117  dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
118 
119  bl1_zgemv( blis_transa,
120  blis_conjx,
121  m_A,
122  n_A,
123  buff_alpha,
124  buff_A, rs_A, cs_A,
125  buff_x, inc_x,
126  buff_beta,
127  buff_y, inc_y );
128 
129  break;
130  }
131 
132  }
133 
134  return FLA_SUCCESS;
135 }
void bl1_dgemv(trans1_t transa, conj1_t conjx, int m, int n, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition: bl1_gemv.c:69
void FLA_Param_map_flame_to_blis_trans(FLA_Trans trans, trans1_t *blis_trans)
Definition: FLA_Param.c:245
FLA_Error FLA_Scal_external(FLA_Obj alpha, FLA_Obj A)
Definition: FLA_Scal_external.c:13
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
trans1_t
Definition: blis_type_defs.h:52
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
void bl1_sgemv(trans1_t transa, conj1_t conjx, int m, int n, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition: bl1_gemv.c:13
Definition: blis_type_defs.h:132
void bl1_zgemv(trans1_t transa, conj1_t conjx, int m, int n, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition: bl1_gemv.c:255
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
void bl1_cgemv(trans1_t transa, conj1_t conjx, int m, int n, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition: bl1_gemv.c:125
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
FLA_Error FLA_Gemvc_check(FLA_Trans transa, FLA_Conj conjx, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Gemvc_check.c:13
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Ger()

FLA_Error FLA_Ger ( FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Ger_external().

Referenced by FLA_Lyap_h_unb_var2(), and FLA_Lyap_n_unb_var2().

14 {
15  return FLA_Ger_external( alpha, x, y, A );
16 }
FLA_Error FLA_Ger_external(FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Ger_external.c:13

◆ FLA_Ger_check()

FLA_Error FLA_Ger_check ( FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), and FLA_Check_nonconstant_object().

Referenced by FLA_Ger_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_floating_object( A );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_nonconstant_object( A );
21  FLA_Check_error_code( e_val );
22 
24  FLA_Check_error_code( e_val );
25 
27  FLA_Check_error_code( e_val );
28 
29  e_val = FLA_Check_consistent_object_datatype( A, alpha );
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_if_vector( x );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_if_vector( y );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_scalar( alpha );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_matrix_vector_dims( FLA_TRANSPOSE, A, x, y );
42  FLA_Check_error_code( e_val );
43 
44  return FLA_SUCCESS;
45 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Ger_external()

FLA_Error FLA_Ger_external ( FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References bl1_cger(), bl1_dger(), bl1_sger(), bl1_zger(), FLA_Check_error_level(), FLA_Ger_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_conj().

Referenced by FLA_Apply_H2_UT_l_unb_var1(), FLA_Apply_HUD_UT_lh_unb_var1(), FLA_Eig_gest_il_unb_var3(), FLA_Eig_gest_il_unb_var4(), FLA_Eig_gest_iu_unb_var3(), FLA_Eig_gest_iu_unb_var4(), FLA_Eig_gest_nl_unb_var4(), FLA_Eig_gest_nu_unb_var4(), FLA_Gemm_nn_unb_var5(), FLA_Gemm_nn_unb_var6(), FLA_Gemm_nt_unb_var5(), FLA_Gemm_nt_unb_var6(), FLA_Gemm_tn_unb_var5(), FLA_Gemm_tn_unb_var6(), FLA_Gemm_tt_unb_var5(), FLA_Gemm_tt_unb_var6(), FLA_Ger(), FLA_Hemm_ll_unb_var3(), FLA_Hemm_ll_unb_var4(), FLA_Hemm_ll_unb_var5(), FLA_Hemm_ll_unb_var8(), FLA_Hemm_lu_unb_var1(), FLA_Hemm_lu_unb_var4(), FLA_Hemm_lu_unb_var7(), FLA_Hemm_lu_unb_var8(), FLA_Hemm_rl_unb_var1(), FLA_Hemm_rl_unb_var4(), FLA_Hemm_rl_unb_var7(), FLA_Hemm_rl_unb_var8(), FLA_Hemm_ru_unb_var3(), FLA_Hemm_ru_unb_var4(), FLA_Hemm_ru_unb_var5(), FLA_Hemm_ru_unb_var8(), FLA_LU_nopiv_unb_var5(), FLA_LU_piv_unb_var5(), FLA_Symm_ll_unb_var1(), FLA_Symm_ll_unb_var3(), FLA_Symm_ll_unb_var4(), FLA_Symm_ll_unb_var5(), FLA_Symm_ll_unb_var7(), FLA_Symm_ll_unb_var8(), FLA_Symm_lu_unb_var1(), FLA_Symm_lu_unb_var3(), FLA_Symm_lu_unb_var4(), FLA_Symm_lu_unb_var5(), FLA_Symm_lu_unb_var7(), FLA_Symm_lu_unb_var8(), FLA_Symm_rl_unb_var1(), FLA_Symm_rl_unb_var3(), FLA_Symm_rl_unb_var4(), FLA_Symm_rl_unb_var5(), FLA_Symm_rl_unb_var7(), FLA_Symm_rl_unb_var8(), FLA_Symm_ru_unb_var1(), FLA_Symm_ru_unb_var3(), FLA_Symm_ru_unb_var4(), FLA_Symm_ru_unb_var5(), FLA_Symm_ru_unb_var7(), FLA_Symm_ru_unb_var8(), FLA_Trinv_ln_unb_var3(), FLA_Trinv_ln_unb_var4(), FLA_Trinv_lu_unb_var3(), FLA_Trinv_lu_unb_var4(), FLA_Trinv_un_unb_var3(), FLA_Trinv_un_unb_var4(), FLA_Trinv_uu_unb_var3(), FLA_Trinv_uu_unb_var4(), FLA_Trmm_lln_unb_var2(), FLA_Trmm_llt_unb_var2(), FLA_Trmm_lun_unb_var2(), FLA_Trmm_lut_unb_var2(), FLA_Trmm_rln_unb_var2(), FLA_Trmm_rlt_unb_var2(), FLA_Trmm_run_unb_var2(), FLA_Trmm_rut_unb_var2(), FLA_Trsm_lln_unb_var2(), FLA_Trsm_llt_unb_var2(), FLA_Trsm_lun_unb_var2(), FLA_Trsm_lut_unb_var2(), FLA_Trsm_rln_unb_var2(), FLA_Trsm_rlt_unb_var2(), FLA_Trsm_run_unb_var2(), and FLA_Trsm_rut_unb_var2().

14 {
15  FLA_Datatype datatype;
16  int m_A, n_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  conj1_t blis_conjx;
21  conj1_t blis_conjy;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Ger_check( alpha, x, y, A );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  n_A = FLA_Obj_width( A );
32  rs_A = FLA_Obj_row_stride( A );
33  cs_A = FLA_Obj_col_stride( A );
34 
35  inc_x = FLA_Obj_vector_inc( x );
36  inc_y = FLA_Obj_vector_inc( y );
37 
38  FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conjx );
39  FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conjy );
40 
41 
42  switch( datatype ){
43 
44  case FLA_FLOAT:
45  {
46  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
47  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
48  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
49  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
50 
51  bl1_sger( blis_conjx,
52  blis_conjy,
53  m_A,
54  n_A,
55  buff_alpha,
56  buff_x, inc_x,
57  buff_y, inc_y,
58  buff_A, rs_A, cs_A );
59 
60  break;
61  }
62 
63  case FLA_DOUBLE:
64  {
65  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
66  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
67  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
68  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
69 
70  bl1_dger( blis_conjx,
71  blis_conjy,
72  m_A,
73  n_A,
74  buff_alpha,
75  buff_x, inc_x,
76  buff_y, inc_y,
77  buff_A, rs_A, cs_A );
78 
79  break;
80  }
81 
82  case FLA_COMPLEX:
83  {
84  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
85  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
86  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
87  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
88 
89  bl1_cger( blis_conjx,
90  blis_conjy,
91  m_A,
92  n_A,
93  buff_alpha,
94  buff_x, inc_x,
95  buff_y, inc_y,
96  buff_A, rs_A, cs_A );
97 
98  break;
99  }
100 
101  case FLA_DOUBLE_COMPLEX:
102  {
103  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
104  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
105  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
106  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
107 
108  bl1_zger( blis_conjx,
109  blis_conjy,
110  m_A,
111  n_A,
112  buff_alpha,
113  buff_x, inc_x,
114  buff_y, inc_y,
115  buff_A, rs_A, cs_A );
116 
117  break;
118  }
119 
120  }
121 
122  return FLA_SUCCESS;
123 }
void bl1_zger(conj1_t conjx, conj1_t conjy, int m, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_ger.c:194
FLA_Error FLA_Ger_check(FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Ger_check.c:13
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
void bl1_dger(conj1_t conjx, conj1_t conjy, int m, int n, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition: bl1_ger.c:62
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
Definition: blis_type_defs.h:132
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
void bl1_sger(conj1_t conjx, conj1_t conjy, int m, int n, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition: bl1_ger.c:13
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
void bl1_cger(conj1_t conjx, conj1_t conjy, int m, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition: bl1_ger.c:111
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Gerc()

FLA_Error FLA_Gerc ( FLA_Conj  conjx,
FLA_Conj  conjy,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Gerc_external().

Referenced by FLA_Bidiag_UT_u_step_unb_var2(), FLA_Bidiag_UT_u_step_unb_var3(), FLA_Hess_UT_step_unb_var2(), FLA_Hess_UT_step_unb_var3(), and FLA_Hess_UT_step_unb_var4().

14 {
15  return FLA_Gerc_external( conjx, conjy, alpha, x, y, A );
16 }
FLA_Error FLA_Gerc_external(FLA_Conj conjx, FLA_Conj conjy, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Gerc_external.c:13

◆ FLA_Gerc_check()

FLA_Error FLA_Gerc_check ( FLA_Conj  conjx,
FLA_Conj  conjy,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), and FLA_Check_valid_conj().

Referenced by FLA_Gerc_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_conj( conjx );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_conj( conjy );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_floating_object( A );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_nonconstant_object( A );
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_consistent_object_datatype( A, alpha );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( x );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_vector( y );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_scalar( alpha );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_matrix_vector_dims( FLA_TRANSPOSE, A, x, y );
48  FLA_Check_error_code( e_val );
49 
50  return FLA_SUCCESS;
51 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_valid_conj(FLA_Conj conj)
Definition: FLA_Check.c:112
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Gerc_external()

FLA_Error FLA_Gerc_external ( FLA_Conj  conjx,
FLA_Conj  conjy,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References bl1_cger(), bl1_dger(), bl1_sger(), bl1_zger(), FLA_Check_error_level(), FLA_Gerc_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Obj_width(), and FLA_Param_map_flame_to_blis_conj().

Referenced by FLA_Apply_H2_UT_r_unb_var1(), FLA_Gemm_cc_unb_var5(), FLA_Gemm_cc_unb_var6(), FLA_Gemm_ch_unb_var5(), FLA_Gemm_ch_unb_var6(), FLA_Gemm_cn_unb_var5(), FLA_Gemm_cn_unb_var6(), FLA_Gemm_ct_unb_var5(), FLA_Gemm_ct_unb_var6(), FLA_Gemm_hc_unb_var5(), FLA_Gemm_hc_unb_var6(), FLA_Gemm_hh_unb_var5(), FLA_Gemm_hh_unb_var6(), FLA_Gemm_hn_unb_var5(), FLA_Gemm_hn_unb_var6(), FLA_Gemm_ht_unb_var5(), FLA_Gemm_ht_unb_var6(), FLA_Gemm_nc_unb_var5(), FLA_Gemm_nc_unb_var6(), FLA_Gemm_nh_unb_var5(), FLA_Gemm_nh_unb_var6(), FLA_Gemm_tc_unb_var5(), FLA_Gemm_tc_unb_var6(), FLA_Gemm_th_unb_var5(), FLA_Gemm_th_unb_var6(), FLA_Gerc(), FLA_Hemm_ll_unb_var1(), FLA_Hemm_ll_unb_var4(), FLA_Hemm_ll_unb_var7(), FLA_Hemm_ll_unb_var8(), FLA_Hemm_lu_unb_var3(), FLA_Hemm_lu_unb_var4(), FLA_Hemm_lu_unb_var5(), FLA_Hemm_lu_unb_var8(), FLA_Hemm_rl_unb_var3(), FLA_Hemm_rl_unb_var4(), FLA_Hemm_rl_unb_var5(), FLA_Hemm_rl_unb_var8(), FLA_Hemm_ru_unb_var1(), FLA_Hemm_ru_unb_var4(), FLA_Hemm_ru_unb_var7(), FLA_Hemm_ru_unb_var8(), FLA_Trmm_llc_unb_var2(), FLA_Trmm_llh_unb_var2(), FLA_Trmm_luc_unb_var2(), FLA_Trmm_luh_unb_var2(), FLA_Trmm_rlc_unb_var2(), FLA_Trmm_rlh_unb_var2(), FLA_Trmm_ruc_unb_var2(), FLA_Trmm_ruh_unb_var2(), FLA_Trsm_llc_unb_var2(), FLA_Trsm_llh_unb_var2(), FLA_Trsm_luc_unb_var2(), FLA_Trsm_luh_unb_var2(), FLA_Trsm_rlc_unb_var2(), FLA_Trsm_rlh_unb_var2(), FLA_Trsm_ruc_unb_var2(), and FLA_Trsm_ruh_unb_var2().

14 {
15  FLA_Datatype datatype;
16  int m_A, n_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  conj1_t blis_conjx;
21  conj1_t blis_conjy;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Gerc_check( conjx, conjy, alpha, x, y, A );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  n_A = FLA_Obj_width( A );
32  rs_A = FLA_Obj_row_stride( A );
33  cs_A = FLA_Obj_col_stride( A );
34 
35  inc_x = FLA_Obj_vector_inc( x );
36  inc_y = FLA_Obj_vector_inc( y );
37 
38  FLA_Param_map_flame_to_blis_conj( conjx, &blis_conjx );
39  FLA_Param_map_flame_to_blis_conj( conjy, &blis_conjy );
40 
41 
42  switch( datatype ){
43 
44  case FLA_FLOAT:
45  {
46  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
47  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
48  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
49  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
50 
51  bl1_sger( blis_conjx,
52  blis_conjy,
53  m_A,
54  n_A,
55  buff_alpha,
56  buff_x, inc_x,
57  buff_y, inc_y,
58  buff_A, rs_A, cs_A );
59 
60  break;
61  }
62 
63  case FLA_DOUBLE:
64  {
65  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
66  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
67  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
68  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
69 
70  bl1_dger( blis_conjx,
71  blis_conjy,
72  m_A,
73  n_A,
74  buff_alpha,
75  buff_x, inc_x,
76  buff_y, inc_y,
77  buff_A, rs_A, cs_A );
78 
79  break;
80  }
81 
82  case FLA_COMPLEX:
83  {
84  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
85  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
86  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
87  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
88 
89  bl1_cger( blis_conjx,
90  blis_conjy,
91  m_A,
92  n_A,
93  buff_alpha,
94  buff_x, inc_x,
95  buff_y, inc_y,
96  buff_A, rs_A, cs_A );
97 
98  break;
99  }
100 
101  case FLA_DOUBLE_COMPLEX:
102  {
103  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
104  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
105  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
106  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
107 
108  bl1_zger( blis_conjx,
109  blis_conjy,
110  m_A,
111  n_A,
112  buff_alpha,
113  buff_x, inc_x,
114  buff_y, inc_y,
115  buff_A, rs_A, cs_A );
116 
117  break;
118  }
119 
120  }
121 
122  return FLA_SUCCESS;
123 }
FLA_Error FLA_Gerc_check(FLA_Conj conjx, FLA_Conj conjy, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Gerc_check.c:13
void bl1_zger(conj1_t conjx, conj1_t conjy, int m, int n, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_ger.c:194
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
void bl1_dger(conj1_t conjx, conj1_t conjy, int m, int n, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition: bl1_ger.c:62
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
Definition: blis_type_defs.h:132
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
void bl1_sger(conj1_t conjx, conj1_t conjy, int m, int n, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition: bl1_ger.c:13
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
void bl1_cger(conj1_t conjx, conj1_t conjy, int m, int n, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition: bl1_ger.c:111
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Hemv()

FLA_Error FLA_Hemv ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Hemv_external().

Referenced by FLA_Lyap_h_unb_var1(), FLA_Tridiag_UT_l_step_unb_var1(), FLA_Tridiag_UT_l_step_unb_var2(), and FLA_Tridiag_UT_l_step_unb_var3().

14 {
15  return FLA_Hemv_external( uplo, alpha, A, x, beta, y );
16 }
FLA_Error FLA_Hemv_external(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Hemv_external.c:13

◆ FLA_Hemv_check()

FLA_Error FLA_Hemv_check ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), and FLA_Check_valid_uplo().

Referenced by FLA_Hemv_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_floating_object( A );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_nonconstant_object( A );
24  FLA_Check_error_code( e_val );
25 
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_consistent_object_datatype( A, alpha );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_consistent_object_datatype( A, beta );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_square( A );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_vector( x );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_vector( y );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_if_scalar( alpha );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_if_scalar( beta );
51  FLA_Check_error_code( e_val );
52 
53  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, y );
54  FLA_Check_error_code( e_val );
55 
56  return FLA_SUCCESS;
57 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Hemv_external()

FLA_Error FLA_Hemv_external ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References bl1_chemv(), bl1_dsymv(), bl1_ssymv(), bl1_zhemv(), FLA_Check_error_level(), FLA_Hemv_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Param_map_flame_to_blis_uplo().

Referenced by FLA_Eig_gest_nl_unb_var1(), FLA_Eig_gest_nl_unb_var2(), FLA_Hemm_ll_unb_var10(), FLA_Hemm_ll_unb_var9(), FLA_Hemm_lu_unb_var10(), FLA_Hemm_lu_unb_var9(), and FLA_Hemv().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  uplo1_t blis_uplo;
21  conj1_t blis_conj;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Hemv_check( uplo, alpha, A, x, beta, y );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  rs_A = FLA_Obj_row_stride( A );
32  cs_A = FLA_Obj_col_stride( A );
33 
34  inc_x = FLA_Obj_vector_inc( x );
35  inc_y = FLA_Obj_vector_inc( y );
36 
37  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
38  FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
39 
40 
41  switch( datatype ){
42 
43  case FLA_FLOAT:
44  {
45  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
46  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
47  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
48  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
49  float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
50 
51  bl1_ssymv( blis_uplo,
52  m_A,
53  buff_alpha,
54  buff_A, rs_A, cs_A,
55  buff_x, inc_x,
56  buff_beta,
57  buff_y, inc_y );
58 
59  break;
60  }
61 
62  case FLA_DOUBLE:
63  {
64  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
65  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
66  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
67  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
68  double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
69 
70  bl1_dsymv( blis_uplo,
71  m_A,
72  buff_alpha,
73  buff_A, rs_A, cs_A,
74  buff_x, inc_x,
75  buff_beta,
76  buff_y, inc_y );
77 
78  break;
79  }
80 
81  case FLA_COMPLEX:
82  {
83  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
84  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
85  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
86  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
87  scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
88 
89  bl1_chemv( blis_uplo,
90  blis_conj,
91  m_A,
92  buff_alpha,
93  buff_A, rs_A, cs_A,
94  buff_x, inc_x,
95  buff_beta,
96  buff_y, inc_y );
97 
98  break;
99  }
100 
101  case FLA_DOUBLE_COMPLEX:
102  {
103  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
104  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
105  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
106  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
107  dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
108 
109  bl1_zhemv( blis_uplo,
110  blis_conj,
111  m_A,
112  buff_alpha,
113  buff_A, rs_A, cs_A,
114  buff_x, inc_x,
115  buff_beta,
116  buff_y, inc_y );
117 
118  break;
119  }
120 
121  }
122 
123  return FLA_SUCCESS;
124 }
uplo1_t
Definition: blis_type_defs.h:60
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
void bl1_ssymv(uplo1_t uplo, int m, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition: bl1_symv.c:13
void bl1_chemv(uplo1_t uplo, conj1_t conj, int m, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition: bl1_hemv.c:35
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
void bl1_dsymv(uplo1_t uplo, int m, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition: bl1_symv.c:56
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
void bl1_zhemv(uplo1_t uplo, conj1_t conj, int m, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition: bl1_hemv.c:134
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
FLA_Error FLA_Hemv_check(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Hemv_check.c:13
Definition: blis_type_defs.h:137

◆ FLA_Hemvc()

FLA_Error FLA_Hemvc ( FLA_Uplo  uplo,
FLA_Conj  conja,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Hemvc_external().

Referenced by FLA_Lyap_n_unb_var1().

14 {
15  return FLA_Hemvc_external( uplo, conja, alpha, A, x, beta, y );
16 }
FLA_Error FLA_Hemvc_external(FLA_Uplo uplo, FLA_Conj conja, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Hemvc_external.c:13

◆ FLA_Hemvc_check()

FLA_Error FLA_Hemvc_check ( FLA_Uplo  uplo,
FLA_Conj  conja,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), FLA_Check_valid_conj(), and FLA_Check_valid_uplo().

Referenced by FLA_Hemvc_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_conj( conj );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_floating_object( A );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_nonconstant_object( A );
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_consistent_object_datatype( A, alpha );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_consistent_object_datatype( A, beta );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_square( A );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_vector( x );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_if_vector( y );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_if_scalar( alpha );
51  FLA_Check_error_code( e_val );
52 
53  e_val = FLA_Check_if_scalar( beta );
54  FLA_Check_error_code( e_val );
55 
56  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, y );
57  FLA_Check_error_code( e_val );
58 
59  return FLA_SUCCESS;
60 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_valid_conj(FLA_Conj conj)
Definition: FLA_Check.c:112
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Hemvc_external()

FLA_Error FLA_Hemvc_external ( FLA_Uplo  uplo,
FLA_Conj  conja,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References bl1_chemv(), bl1_dsymv(), bl1_ssymv(), bl1_zhemv(), FLA_Check_error_level(), FLA_Hemvc_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Param_map_flame_to_blis_uplo().

Referenced by FLA_Eig_gest_il_unb_var1(), FLA_Eig_gest_il_unb_var2(), FLA_Eig_gest_iu_unb_var1(), FLA_Eig_gest_iu_unb_var2(), FLA_Eig_gest_nu_unb_var1(), FLA_Eig_gest_nu_unb_var2(), FLA_Hemm_rl_unb_var10(), FLA_Hemm_rl_unb_var9(), FLA_Hemm_ru_unb_var10(), FLA_Hemm_ru_unb_var9(), and FLA_Hemvc().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  uplo1_t blis_uplo;
21  conj1_t blis_conja;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Hemvc_check( uplo, conja, alpha, A, x, beta, y );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  rs_A = FLA_Obj_row_stride( A );
32  cs_A = FLA_Obj_col_stride( A );
33 
34  inc_x = FLA_Obj_vector_inc( x );
35  inc_y = FLA_Obj_vector_inc( y );
36 
37  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
38  FLA_Param_map_flame_to_blis_conj( conja, &blis_conja );
39 
40 
41  switch( datatype ){
42 
43  case FLA_FLOAT:
44  {
45  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
46  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
47  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
48  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
49  float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
50 
51  bl1_ssymv( blis_uplo,
52  m_A,
53  buff_alpha,
54  buff_A, rs_A, cs_A,
55  buff_x, inc_x,
56  buff_beta,
57  buff_y, inc_y );
58 
59  break;
60  }
61 
62  case FLA_DOUBLE:
63  {
64  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
65  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
66  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
67  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
68  double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
69 
70  bl1_dsymv( blis_uplo,
71  m_A,
72  buff_alpha,
73  buff_A, rs_A, cs_A,
74  buff_x, inc_x,
75  buff_beta,
76  buff_y, inc_y );
77 
78  break;
79  }
80 
81  case FLA_COMPLEX:
82  {
83  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
84  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
85  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
86  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
87  scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
88 
89  bl1_chemv( blis_uplo,
90  blis_conja,
91  m_A,
92  buff_alpha,
93  buff_A, rs_A, cs_A,
94  buff_x, inc_x,
95  buff_beta,
96  buff_y, inc_y );
97 
98  break;
99  }
100 
101  case FLA_DOUBLE_COMPLEX:
102  {
103  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
104  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
105  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
106  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
107  dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
108 
109  bl1_zhemv( blis_uplo,
110  blis_conja,
111  m_A,
112  buff_alpha,
113  buff_A, rs_A, cs_A,
114  buff_x, inc_x,
115  buff_beta,
116  buff_y, inc_y );
117 
118  break;
119  }
120 
121  }
122 
123  return FLA_SUCCESS;
124 }
FLA_Error FLA_Hemvc_check(FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Hemvc_check.c:13
uplo1_t
Definition: blis_type_defs.h:60
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
void bl1_ssymv(uplo1_t uplo, int m, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition: bl1_symv.c:13
void bl1_chemv(uplo1_t uplo, conj1_t conj, int m, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition: bl1_hemv.c:35
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
void bl1_dsymv(uplo1_t uplo, int m, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition: bl1_symv.c:56
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
void bl1_zhemv(uplo1_t uplo, conj1_t conj, int m, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition: bl1_hemv.c:134
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Her()

FLA_Error FLA_Her ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References FLA_Her_external().

14 {
15  return FLA_Her_external( uplo, alpha, x, A );
16 }
FLA_Error FLA_Her_external(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
Definition: FLA_Her_external.c:13

◆ FLA_Her2()

FLA_Error FLA_Her2 ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Her2_external().

Referenced by FLA_Lyap_n_unb_var4(), FLA_Tridiag_UT_l_step_unb_var1(), and FLA_Tridiag_UT_l_step_unb_var2().

14 {
15  return FLA_Her2_external( uplo, alpha, x, y, A );
16 }
FLA_Error FLA_Her2_external(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Her2_external.c:13

◆ FLA_Her2_check()

FLA_Error FLA_Her2_check ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), and FLA_Check_valid_uplo().

Referenced by FLA_Her2_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_floating_object( A );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_nonconstant_object( A );
24  FLA_Check_error_code( e_val );
25 
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_consistent_object_datatype( A, alpha );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_if_vector( x );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( y );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_scalar( alpha );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_square( A );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_matrix_vector_dims( FLA_TRANSPOSE, A, x, y );
48  FLA_Check_error_code( e_val );
49 
50  return FLA_SUCCESS;
51 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Her2_external()

FLA_Error FLA_Her2_external ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References bl1_cher2(), bl1_dsyr2(), bl1_ssyr2(), bl1_zher2(), FLA_Check_error_level(), FLA_Her2_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Param_map_flame_to_blis_uplo().

Referenced by FLA_Her2(), FLA_Her2k_ln_unb_var10(), FLA_Her2k_ln_unb_var9(), FLA_Her2k_un_unb_var10(), and FLA_Her2k_un_unb_var9().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  uplo1_t blis_uplo;
21  conj1_t blis_conj;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Her2_check( uplo, alpha, x, y, A );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  rs_A = FLA_Obj_row_stride( A );
32  cs_A = FLA_Obj_col_stride( A );
33 
34  inc_x = FLA_Obj_vector_inc( x );
35  inc_y = FLA_Obj_vector_inc( y );
36 
37  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
38  FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
39 
40 
41  switch( datatype ){
42 
43  case FLA_FLOAT:
44  {
45  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
46  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
47  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
48  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
49 
50  bl1_ssyr2( blis_uplo,
51  m_A,
52  buff_alpha,
53  buff_x, inc_x,
54  buff_y, inc_y,
55  buff_A, rs_A, cs_A );
56 
57  break;
58  }
59 
60  case FLA_DOUBLE:
61  {
62  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
63  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
64  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
65  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
66 
67  bl1_dsyr2( blis_uplo,
68  m_A,
69  buff_alpha,
70  buff_x, inc_x,
71  buff_y, inc_y,
72  buff_A, rs_A, cs_A );
73 
74  break;
75  }
76 
77  case FLA_COMPLEX:
78  {
79  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
80  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
81  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
82  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
83 
84  bl1_cher2( blis_uplo,
85  blis_conj,
86  m_A,
87  buff_alpha,
88  buff_x, inc_x,
89  buff_y, inc_y,
90  buff_A, rs_A, cs_A );
91 
92  break;
93  }
94 
95  case FLA_DOUBLE_COMPLEX:
96  {
97  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
98  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
99  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
100  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
101 
102  bl1_zher2( blis_uplo,
103  blis_conj,
104  m_A,
105  buff_alpha,
106  buff_x, inc_x,
107  buff_y, inc_y,
108  buff_A, rs_A, cs_A );
109 
110  break;
111  }
112 
113  }
114 
115  return FLA_SUCCESS;
116 }
uplo1_t
Definition: blis_type_defs.h:60
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
void bl1_ssyr2(uplo1_t uplo, int m, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:13
void bl1_dsyr2(uplo1_t uplo, int m, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:58
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
void bl1_cher2(uplo1_t uplo, conj1_t conj, int m, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition: bl1_her2.c:33
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
FLA_Error FLA_Her2_check(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Her2_check.c:13
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
void bl1_zher2(uplo1_t uplo, conj1_t conj, int m, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_her2.c:121
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Her2c()

FLA_Error FLA_Her2c ( FLA_Uplo  uplo,
FLA_Conj  conj,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Her2c_external().

Referenced by FLA_Lyap_h_unb_var4().

14 {
15  return FLA_Her2c_external( uplo, conj, alpha, x, y, A );
16 }
FLA_Error FLA_Her2c_external(FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Her2c_external.c:13

◆ FLA_Her2c_check()

FLA_Error FLA_Her2c_check ( FLA_Uplo  uplo,
FLA_Conj  conj,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), FLA_Check_valid_conj(), and FLA_Check_valid_uplo().

Referenced by FLA_Her2c_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_conj( conj );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_floating_object( A );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_nonconstant_object( A );
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_consistent_object_datatype( A, alpha );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( x );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_vector( y );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_scalar( alpha );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_square( A );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_matrix_vector_dims( FLA_TRANSPOSE, A, x, y );
51  FLA_Check_error_code( e_val );
52 
53  return FLA_SUCCESS;
54 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_valid_conj(FLA_Conj conj)
Definition: FLA_Check.c:112
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Her2c_external()

FLA_Error FLA_Her2c_external ( FLA_Uplo  uplo,
FLA_Conj  conj,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References bl1_cher2(), bl1_dsyr2(), bl1_ssyr2(), bl1_zher2(), FLA_Check_error_level(), FLA_Her2c_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Param_map_flame_to_blis_uplo().

Referenced by FLA_Eig_gest_il_unb_var4(), FLA_Eig_gest_il_unb_var5(), FLA_Eig_gest_iu_unb_var4(), FLA_Eig_gest_iu_unb_var5(), FLA_Eig_gest_nl_unb_var4(), FLA_Eig_gest_nl_unb_var5(), FLA_Eig_gest_nu_unb_var4(), FLA_Eig_gest_nu_unb_var5(), FLA_Her2c(), FLA_Her2k_lh_unb_var10(), FLA_Her2k_lh_unb_var9(), FLA_Her2k_uh_unb_var10(), and FLA_Her2k_uh_unb_var9().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  uplo1_t blis_uplo;
21  conj1_t blis_conj;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Her2c_check( uplo, conj, alpha, x, y, A );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  rs_A = FLA_Obj_row_stride( A );
32  cs_A = FLA_Obj_col_stride( A );
33 
34  inc_x = FLA_Obj_vector_inc( x );
35  inc_y = FLA_Obj_vector_inc( y );
36 
37  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
38  FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
39 
40 
41  switch( datatype ){
42 
43  case FLA_FLOAT:
44  {
45  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
46  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
47  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
48  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
49 
50  bl1_ssyr2( blis_uplo,
51  m_A,
52  buff_alpha,
53  buff_x, inc_x,
54  buff_y, inc_y,
55  buff_A, rs_A, cs_A );
56 
57  break;
58  }
59 
60  case FLA_DOUBLE:
61  {
62  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
63  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
64  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
65  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
66 
67  bl1_dsyr2( blis_uplo,
68  m_A,
69  buff_alpha,
70  buff_x, inc_x,
71  buff_y, inc_y,
72  buff_A, rs_A, cs_A );
73  break;
74  }
75 
76  case FLA_COMPLEX:
77  {
78  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
79  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
80  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
81  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
82 
83  bl1_cher2( blis_uplo,
84  blis_conj,
85  m_A,
86  buff_alpha,
87  buff_x, inc_x,
88  buff_y, inc_y,
89  buff_A, rs_A, cs_A );
90 
91  break;
92  }
93 
94  case FLA_DOUBLE_COMPLEX:
95  {
96  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
97  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
98  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
99  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
100 
101  bl1_zher2( blis_uplo,
102  blis_conj,
103  m_A,
104  buff_alpha,
105  buff_x, inc_x,
106  buff_y, inc_y,
107  buff_A, rs_A, cs_A );
108 
109  break;
110  }
111 
112  }
113 
114  return FLA_SUCCESS;
115 }
uplo1_t
Definition: blis_type_defs.h:60
FLA_Error FLA_Her2c_check(FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Her2c_check.c:13
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
void bl1_ssyr2(uplo1_t uplo, int m, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:13
void bl1_dsyr2(uplo1_t uplo, int m, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:58
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
void bl1_cher2(uplo1_t uplo, conj1_t conj, int m, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition: bl1_her2.c:33
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
void bl1_zher2(uplo1_t uplo, conj1_t conj, int m, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_her2.c:121
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Her_check()

FLA_Error FLA_Her_check ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_real_object(), FLA_Check_square(), and FLA_Check_valid_uplo().

Referenced by FLA_Her_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_floating_object( A );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_nonconstant_object( A );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_real_object( alpha );
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_identical_object_precision( A, alpha );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_if_vector( x );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_scalar( alpha );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_square( A );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, x );
45  FLA_Check_error_code( e_val );
46 
47  return FLA_SUCCESS;
48 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_identical_object_precision(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:298
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_real_object(FLA_Obj A)
Definition: FLA_Check.c:258
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76

◆ FLA_Her_external()

FLA_Error FLA_Her_external ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References bl1_cher(), bl1_dsyr(), bl1_ssyr(), bl1_zher(), FLA_Check_error_level(), FLA_Her_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Param_map_flame_to_blis_uplo().

Referenced by FLA_Chol_l_unb_var3(), FLA_Her(), FLA_Herk_ln_unb_var5(), FLA_Herk_ln_unb_var6(), FLA_Herk_un_unb_var5(), FLA_Herk_un_unb_var6(), and FLA_Ttmm_u_unb_var1().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  uplo1_t blis_uplo;
20  conj1_t blis_conj;
21 
22  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
23  FLA_Her_check( uplo, alpha, x, A );
24 
25  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
26 
27  datatype = FLA_Obj_datatype( A );
28 
29  m_A = FLA_Obj_length( A );
30  rs_A = FLA_Obj_row_stride( A );
31  cs_A = FLA_Obj_col_stride( A );
32 
33  inc_x = FLA_Obj_vector_inc( x );
34 
35  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
36  FLA_Param_map_flame_to_blis_conj( FLA_NO_CONJUGATE, &blis_conj );
37 
38 
39  switch( datatype ){
40 
41  case FLA_FLOAT:
42  {
43  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
44  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
45  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
46 
47  bl1_ssyr( blis_uplo,
48  m_A,
49  buff_alpha,
50  buff_x, inc_x,
51  buff_A, rs_A, cs_A );
52 
53  break;
54  }
55 
56  case FLA_DOUBLE:
57  {
58  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
59  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
60  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
61 
62  bl1_dsyr( blis_uplo,
63  m_A,
64  buff_alpha,
65  buff_x, inc_x,
66  buff_A, rs_A, cs_A );
67 
68  break;
69  }
70 
71  case FLA_COMPLEX:
72  {
73  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
74  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
75  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
76 
77  bl1_cher( blis_uplo,
78  blis_conj,
79  m_A,
80  buff_alpha,
81  buff_x, inc_x,
82  buff_A, rs_A, cs_A );
83 
84  break;
85  }
86 
87  case FLA_DOUBLE_COMPLEX:
88  {
89  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
90  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
91  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
92 
93  bl1_zher( blis_uplo,
94  blis_conj,
95  m_A,
96  buff_alpha,
97  buff_x, inc_x,
98  buff_A, rs_A, cs_A );
99 
100  break;
101  }
102 
103  }
104 
105  return FLA_SUCCESS;
106 }
void bl1_zher(uplo1_t uplo, conj1_t conj, int m, double *alpha, dcomplex *x, int incx, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_her.c:101
uplo1_t
Definition: blis_type_defs.h:60
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
void bl1_dsyr(uplo1_t uplo, int m, double *alpha, double *x, int incx, double *a, int a_rs, int a_cs)
Definition: bl1_syr.c:57
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
void bl1_cher(uplo1_t uplo, conj1_t conj, int m, float *alpha, scomplex *x, int incx, scomplex *a, int a_rs, int a_cs)
Definition: bl1_her.c:31
Definition: blis_type_defs.h:132
FLA_Error FLA_Her_check(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
Definition: FLA_Her_check.c:13
void bl1_ssyr(uplo1_t uplo, int m, float *alpha, float *x, int incx, float *a, int a_rs, int a_cs)
Definition: bl1_syr.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Herc()

FLA_Error FLA_Herc ( FLA_Uplo  uplo,
FLA_Conj  conj,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References FLA_Herc_external().

14 {
15  return FLA_Herc_external( uplo, conj, alpha, x, A );
16 }
FLA_Error FLA_Herc_external(FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
Definition: FLA_Herc_external.c:13

◆ FLA_Herc_check()

FLA_Error FLA_Herc_check ( FLA_Uplo  uplo,
FLA_Conj  conj,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_identical_object_precision(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_real_object(), FLA_Check_square(), FLA_Check_valid_conj(), and FLA_Check_valid_uplo().

Referenced by FLA_Herc_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_conj( conj );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_floating_object( A );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_nonconstant_object( A );
27  FLA_Check_error_code( e_val );
28 
29  e_val = FLA_Check_real_object( alpha );
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_identical_object_precision( A, alpha );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( x );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_scalar( alpha );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_square( A );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, x );
48  FLA_Check_error_code( e_val );
49 
50  return FLA_SUCCESS;
51 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_identical_object_precision(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:298
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_real_object(FLA_Obj A)
Definition: FLA_Check.c:258
FLA_Error FLA_Check_valid_conj(FLA_Conj conj)
Definition: FLA_Check.c:112
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76

◆ FLA_Herc_external()

FLA_Error FLA_Herc_external ( FLA_Uplo  uplo,
FLA_Conj  conj,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References bl1_cher(), bl1_dsyr(), bl1_ssyr(), bl1_zher(), FLA_Check_error_level(), FLA_Herc_check(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_conj(), and FLA_Param_map_flame_to_blis_uplo().

Referenced by FLA_Chol_u_unb_var3(), FLA_Herc(), FLA_Herk_lh_unb_var5(), FLA_Herk_lh_unb_var6(), FLA_Herk_uh_unb_var5(), FLA_Herk_uh_unb_var6(), and FLA_Ttmm_l_unb_var1().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  uplo1_t blis_uplo;
20  conj1_t blis_conj;
21 
22  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
23  FLA_Herc_check( uplo, conj, alpha, x, A );
24 
25  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
26 
27  datatype = FLA_Obj_datatype( A );
28 
29  m_A = FLA_Obj_length( A );
30  rs_A = FLA_Obj_row_stride( A );
31  cs_A = FLA_Obj_col_stride( A );
32 
33  inc_x = FLA_Obj_vector_inc( x );
34 
35  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
36  FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
37 
38 
39  switch( datatype ){
40 
41  case FLA_FLOAT:
42  {
43  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
44  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
45  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
46 
47  bl1_ssyr( blis_uplo,
48  m_A,
49  buff_alpha,
50  buff_x, inc_x,
51  buff_A, rs_A, cs_A );
52  break;
53  }
54 
55  case FLA_DOUBLE:
56  {
57  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
58  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
59  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
60 
61  bl1_dsyr( blis_uplo,
62  m_A,
63  buff_alpha,
64  buff_x, inc_x,
65  buff_A, rs_A, cs_A );
66  break;
67  }
68 
69  case FLA_COMPLEX:
70  {
71  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
72  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
73  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
74 
75  bl1_cher( blis_uplo,
76  blis_conj,
77  m_A,
78  buff_alpha,
79  buff_x, inc_x,
80  buff_A, rs_A, cs_A );
81 
82  break;
83  }
84 
85  case FLA_DOUBLE_COMPLEX:
86  {
87  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
88  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
89  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
90 
91  bl1_zher( blis_uplo,
92  blis_conj,
93  m_A,
94  buff_alpha,
95  buff_x, inc_x,
96  buff_A, rs_A, cs_A );
97 
98  break;
99  }
100 
101  }
102 
103  return FLA_SUCCESS;
104 }
void bl1_zher(uplo1_t uplo, conj1_t conj, int m, double *alpha, dcomplex *x, int incx, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_her.c:101
uplo1_t
Definition: blis_type_defs.h:60
FLA_Error FLA_Herc_check(FLA_Uplo uplo, FLA_Conj conj, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
Definition: FLA_Herc_check.c:13
conj1_t
Definition: blis_type_defs.h:79
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
void bl1_dsyr(uplo1_t uplo, int m, double *alpha, double *x, int incx, double *a, int a_rs, int a_cs)
Definition: bl1_syr.c:57
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
void bl1_cher(uplo1_t uplo, conj1_t conj, int m, float *alpha, scomplex *x, int incx, scomplex *a, int a_rs, int a_cs)
Definition: bl1_her.c:31
Definition: blis_type_defs.h:132
void bl1_ssyr(uplo1_t uplo, int m, float *alpha, float *x, int incx, float *a, int a_rs, int a_cs)
Definition: bl1_syr.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void FLA_Param_map_flame_to_blis_conj(FLA_Conj conj, conj1_t *blis_conj)
Definition: FLA_Param.c:269
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Symv()

FLA_Error FLA_Symv ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Symv_external().

14 {
15  return FLA_Symv_external( uplo, alpha, A, x, beta, y );
16 }
FLA_Error FLA_Symv_external(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Symv_external.c:13

◆ FLA_Symv_check()

FLA_Error FLA_Symv_check ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), and FLA_Check_valid_uplo().

Referenced by FLA_Symv_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_floating_object( A );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_nonconstant_object( A );
24  FLA_Check_error_code( e_val );
25 
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_consistent_object_datatype( A, alpha );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_consistent_object_datatype( A, beta );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_square( A );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_vector( x );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_vector( y );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_if_scalar( alpha );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_if_scalar( beta );
51  FLA_Check_error_code( e_val );
52 
53  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, y );
54  FLA_Check_error_code( e_val );
55 
56  return FLA_SUCCESS;
57 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Symv_external()

FLA_Error FLA_Symv_external ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References bl1_csymv(), bl1_dsymv(), bl1_ssymv(), bl1_zsymv(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_uplo(), and FLA_Symv_check().

Referenced by FLA_Symm_ll_unb_var10(), FLA_Symm_ll_unb_var9(), FLA_Symm_lu_unb_var10(), FLA_Symm_lu_unb_var9(), FLA_Symm_rl_unb_var10(), FLA_Symm_rl_unb_var9(), FLA_Symm_ru_unb_var10(), FLA_Symm_ru_unb_var9(), and FLA_Symv().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  uplo1_t blis_uplo;
21 
22  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
23  FLA_Symv_check( uplo, alpha, A, x, beta, y );
24 
25  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
26 
27  datatype = FLA_Obj_datatype( A );
28 
29  m_A = FLA_Obj_length( A );
30  rs_A = FLA_Obj_row_stride( A );
31  cs_A = FLA_Obj_col_stride( A );
32 
33  inc_x = FLA_Obj_vector_inc( x );
34  inc_y = FLA_Obj_vector_inc( y );
35 
36  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
37 
38 
39  switch( datatype ){
40 
41  case FLA_FLOAT:
42  {
43  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
44  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
45  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
46  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
47  float *buff_beta = ( float * ) FLA_FLOAT_PTR( beta );
48 
49  bl1_ssymv( blis_uplo,
50  m_A,
51  buff_alpha,
52  buff_A, rs_A, cs_A,
53  buff_x, inc_x,
54  buff_beta,
55  buff_y, inc_y );
56 
57  break;
58  }
59 
60  case FLA_DOUBLE:
61  {
62  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
63  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
64  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
65  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
66  double *buff_beta = ( double * ) FLA_DOUBLE_PTR( beta );
67 
68  bl1_dsymv( blis_uplo,
69  m_A,
70  buff_alpha,
71  buff_A, rs_A, cs_A,
72  buff_x, inc_x,
73  buff_beta,
74  buff_y, inc_y );
75 
76  break;
77  }
78 
79  case FLA_COMPLEX:
80  {
81  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
82  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
83  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
84  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
85  scomplex *buff_beta = ( scomplex * ) FLA_COMPLEX_PTR( beta );
86 
87  bl1_csymv( blis_uplo,
88  m_A,
89  buff_alpha,
90  buff_A, rs_A, cs_A,
91  buff_x, inc_x,
92  buff_beta,
93  buff_y, inc_y );
94 
95  break;
96  }
97 
98  case FLA_DOUBLE_COMPLEX:
99  {
100  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
101  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
102  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
103  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
104  dcomplex *buff_beta = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( beta );
105 
106  bl1_zsymv( blis_uplo,
107  m_A,
108  buff_alpha,
109  buff_A, rs_A, cs_A,
110  buff_x, inc_x,
111  buff_beta,
112  buff_y, inc_y );
113 
114  break;
115  }
116 
117  }
118 
119  return FLA_SUCCESS;
120 }
uplo1_t
Definition: blis_type_defs.h:60
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
void bl1_ssymv(uplo1_t uplo, int m, float *alpha, float *a, int a_rs, int a_cs, float *x, int incx, float *beta, float *y, int incy)
Definition: bl1_symv.c:13
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
void bl1_csymv(uplo1_t uplo, int m, scomplex *alpha, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx, scomplex *beta, scomplex *y, int incy)
Definition: bl1_symv.c:99
void bl1_zsymv(uplo1_t uplo, int m, dcomplex *alpha, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx, dcomplex *beta, dcomplex *y, int incy)
Definition: bl1_symv.c:142
void bl1_dsymv(uplo1_t uplo, int m, double *alpha, double *a, int a_rs, int a_cs, double *x, int incx, double *beta, double *y, int incy)
Definition: bl1_symv.c:56
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
FLA_Error FLA_Symv_check(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Symv_check.c:13
Definition: blis_type_defs.h:137

◆ FLA_Syr()

FLA_Error FLA_Syr ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References FLA_Syr_external().

14 {
15  return FLA_Syr_external( uplo, alpha, x, A );
16 }
FLA_Error FLA_Syr_external(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
Definition: FLA_Syr_external.c:13

◆ FLA_Syr2()

FLA_Error FLA_Syr2 ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Syr2_external().

14 {
15  return FLA_Syr2_external( uplo, alpha, x, y, A );
16 }
FLA_Error FLA_Syr2_external(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Syr2_external.c:13

◆ FLA_Syr2_check()

FLA_Error FLA_Syr2_check ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), and FLA_Check_valid_uplo().

Referenced by FLA_Syr2_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_floating_object( A );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_nonconstant_object( A );
24  FLA_Check_error_code( e_val );
25 
27  FLA_Check_error_code( e_val );
28 
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_consistent_object_datatype( A, alpha );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_if_vector( x );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( y );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_if_scalar( alpha );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_square( A );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_matrix_vector_dims( FLA_TRANSPOSE, A, x, y );
48  FLA_Check_error_code( e_val );
49 
50  return FLA_SUCCESS;
51 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Syr2_external()

FLA_Error FLA_Syr2_external ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  y,
FLA_Obj  A 
)

References bl1_csyr2(), bl1_dsyr2(), bl1_ssyr2(), bl1_zsyr2(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_uplo(), and FLA_Syr2_check().

Referenced by FLA_Syr2(), FLA_Syr2k_ln_unb_var10(), FLA_Syr2k_ln_unb_var9(), FLA_Syr2k_lt_unb_var10(), FLA_Syr2k_lt_unb_var9(), FLA_Syr2k_un_unb_var10(), FLA_Syr2k_un_unb_var9(), FLA_Syr2k_ut_unb_var10(), and FLA_Syr2k_ut_unb_var9().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  int inc_y;
20  uplo1_t blis_uplo;
21 
22  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
23  FLA_Syr2_check( uplo, alpha, x, y, A );
24 
25  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
26 
27  datatype = FLA_Obj_datatype( A );
28 
29  m_A = FLA_Obj_length( A );
30  rs_A = FLA_Obj_row_stride( A );
31  cs_A = FLA_Obj_col_stride( A );
32 
33  inc_x = FLA_Obj_vector_inc( x );
34  inc_y = FLA_Obj_vector_inc( y );
35 
36  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
37 
38 
39  switch( datatype ){
40 
41  case FLA_FLOAT:
42  {
43  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
44  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
45  float *buff_y = ( float * ) FLA_FLOAT_PTR( y );
46  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
47 
48  bl1_ssyr2( blis_uplo,
49  m_A,
50  buff_alpha,
51  buff_x, inc_x,
52  buff_y, inc_y,
53  buff_A, rs_A, cs_A );
54 
55  break;
56  }
57 
58  case FLA_DOUBLE:
59  {
60  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
61  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
62  double *buff_y = ( double * ) FLA_DOUBLE_PTR( y );
63  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
64 
65  bl1_dsyr2( blis_uplo,
66  m_A,
67  buff_alpha,
68  buff_x, inc_x,
69  buff_y, inc_y,
70  buff_A, rs_A, cs_A );
71 
72  break;
73  }
74 
75  case FLA_COMPLEX:
76  {
77  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
78  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
79  scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y );
80  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
81 
82  bl1_csyr2( blis_uplo,
83  m_A,
84  buff_alpha,
85  buff_x, inc_x,
86  buff_y, inc_y,
87  buff_A, rs_A, cs_A );
88 
89  break;
90  }
91 
92  case FLA_DOUBLE_COMPLEX:
93  {
94  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
95  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
96  dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y );
97  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
98 
99  bl1_zsyr2( blis_uplo,
100  m_A,
101  buff_alpha,
102  buff_x, inc_x,
103  buff_y, inc_y,
104  buff_A, rs_A, cs_A );
105 
106  break;
107  }
108 
109  }
110 
111  return FLA_SUCCESS;
112 }
uplo1_t
Definition: blis_type_defs.h:60
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
void bl1_zsyr2(uplo1_t uplo, int m, dcomplex *alpha, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:148
void bl1_ssyr2(uplo1_t uplo, int m, float *alpha, float *x, int incx, float *y, int incy, float *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:13
void bl1_dsyr2(uplo1_t uplo, int m, double *alpha, double *x, int incx, double *y, int incy, double *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:58
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
void bl1_csyr2(uplo1_t uplo, int m, scomplex *alpha, scomplex *x, int incx, scomplex *y, int incy, scomplex *a, int a_rs, int a_cs)
Definition: bl1_syr2.c:103
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
FLA_Error FLA_Syr2_check(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A)
Definition: FLA_Syr2_check.c:13
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Syr_check()

FLA_Error FLA_Syr_check ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), and FLA_Check_valid_uplo().

Referenced by FLA_Syr_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_floating_object( A );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_nonconstant_object( A );
24  FLA_Check_error_code( e_val );
25 
27  FLA_Check_error_code( e_val );
28 
29  e_val = FLA_Check_consistent_object_datatype( A, alpha );
30  FLA_Check_error_code( e_val );
31 
32  e_val = FLA_Check_if_vector( x );
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_if_scalar( alpha );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_square( A );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_matrix_vector_dims( FLA_TRANSPOSE, A, x, x );
42  FLA_Check_error_code( e_val );
43 
44  return FLA_SUCCESS;
45 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Syr_external()

FLA_Error FLA_Syr_external ( FLA_Uplo  uplo,
FLA_Obj  alpha,
FLA_Obj  x,
FLA_Obj  A 
)

References bl1_csyr(), bl1_dsyr(), bl1_ssyr(), bl1_zsyr(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_uplo(), and FLA_Syr_check().

Referenced by FLA_Syr(), FLA_Syrk_ln_unb_var5(), FLA_Syrk_ln_unb_var6(), FLA_Syrk_lt_unb_var5(), FLA_Syrk_lt_unb_var6(), FLA_Syrk_un_unb_var5(), FLA_Syrk_un_unb_var6(), FLA_Syrk_ut_unb_var5(), and FLA_Syrk_ut_unb_var6().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  uplo1_t blis_uplo;
20 
21  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
22  FLA_Syr_check( uplo, alpha, x, A );
23 
24  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
25 
26  datatype = FLA_Obj_datatype( A );
27 
28  m_A = FLA_Obj_length( A );
29  rs_A = FLA_Obj_row_stride( A );
30  cs_A = FLA_Obj_col_stride( A );
31 
32  inc_x = FLA_Obj_vector_inc( x );
33 
34  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
35 
36 
37  switch( datatype ){
38 
39  case FLA_FLOAT:
40  {
41  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
42  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
43  float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
44 
45  bl1_ssyr( blis_uplo,
46  m_A,
47  buff_alpha,
48  buff_x, inc_x,
49  buff_A, rs_A, cs_A );
50 
51  break;
52  }
53 
54  case FLA_DOUBLE:
55  {
56  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
57  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
58  double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
59 
60  bl1_dsyr( blis_uplo,
61  m_A,
62  buff_alpha,
63  buff_x, inc_x,
64  buff_A, rs_A, cs_A );
65 
66  break;
67  }
68 
69  case FLA_COMPLEX:
70  {
71  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
72  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
73  scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
74 
75  bl1_csyr( blis_uplo,
76  m_A,
77  buff_alpha,
78  buff_x, inc_x,
79  buff_A, rs_A, cs_A );
80 
81  break;
82  }
83 
84  case FLA_DOUBLE_COMPLEX:
85  {
86  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
87  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
88  dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
89 
90  bl1_zsyr( blis_uplo,
91  m_A,
92  buff_alpha,
93  buff_x, inc_x,
94  buff_A, rs_A, cs_A );
95 
96  break;
97  }
98 
99  }
100 
101  return FLA_SUCCESS;
102 }
uplo1_t
Definition: blis_type_defs.h:60
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Error FLA_Syr_check(FLA_Uplo uplo, FLA_Obj alpha, FLA_Obj x, FLA_Obj A)
Definition: FLA_Syr_check.c:13
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
void bl1_zsyr(uplo1_t uplo, int m, dcomplex *alpha, dcomplex *x, int incx, dcomplex *a, int a_rs, int a_cs)
Definition: bl1_syr.c:145
void bl1_dsyr(uplo1_t uplo, int m, double *alpha, double *x, int incx, double *a, int a_rs, int a_cs)
Definition: bl1_syr.c:57
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void bl1_csyr(uplo1_t uplo, int m, scomplex *alpha, scomplex *x, int incx, scomplex *a, int a_rs, int a_cs)
Definition: bl1_syr.c:101
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
void bl1_ssyr(uplo1_t uplo, int m, float *alpha, float *x, int incx, float *a, int a_rs, int a_cs)
Definition: bl1_syr.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Trmv()

FLA_Error FLA_Trmv ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x 
)

References FLA_Trmv_external().

14 {
15  return FLA_Trmv_external( uplo, transa, diag, A, x );
16 }
FLA_Error FLA_Trmv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trmv_external.c:13

◆ FLA_Trmv_check()

FLA_Error FLA_Trmv_check ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x 
)

References FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), FLA_Check_valid_diag(), FLA_Check_valid_trans(), and FLA_Check_valid_uplo().

Referenced by FLA_Trmv_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_trans( transa );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_valid_diag( diag );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_floating_object( A );
27  FLA_Check_error_code( e_val );
28 
29  e_val = FLA_Check_nonconstant_object( A );
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_square( A );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( x );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, x );
42  FLA_Check_error_code( e_val );
43 
44  return FLA_SUCCESS;
45 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
FLA_Error FLA_Check_valid_trans(FLA_Trans trans)
Definition: FLA_Check.c:87
FLA_Error FLA_Check_valid_diag(FLA_Diag diag)
Definition: FLA_Check.c:100
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76

◆ FLA_Trmv_external()

FLA_Error FLA_Trmv_external ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x 
)

References bl1_ctrmv(), bl1_dtrmv(), bl1_strmv(), bl1_ztrmv(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_diag(), FLA_Param_map_flame_to_blis_trans(), FLA_Param_map_flame_to_blis_uplo(), and FLA_Trmv_check().

Referenced by FLA_CAQR2_UT_unb_var1(), FLA_Eig_gest_nl_unb_var1(), FLA_Eig_gest_nl_unb_var5(), FLA_Eig_gest_nu_unb_var1(), FLA_Eig_gest_nu_unb_var5(), FLA_Trinv_ln_unb_var1(), FLA_Trinv_ln_unb_var4(), FLA_Trinv_lu_unb_var1(), FLA_Trinv_lu_unb_var4(), FLA_Trinv_un_unb_var1(), FLA_Trinv_un_unb_var4(), FLA_Trinv_uu_unb_var1(), FLA_Trinv_uu_unb_var4(), FLA_Trmm_llc_unb_var3(), FLA_Trmm_llc_unb_var4(), FLA_Trmm_llh_unb_var3(), FLA_Trmm_llh_unb_var4(), FLA_Trmm_lln_unb_var3(), FLA_Trmm_lln_unb_var4(), FLA_Trmm_llt_unb_var3(), FLA_Trmm_llt_unb_var4(), FLA_Trmm_luc_unb_var3(), FLA_Trmm_luc_unb_var4(), FLA_Trmm_luh_unb_var3(), FLA_Trmm_luh_unb_var4(), FLA_Trmm_lun_unb_var3(), FLA_Trmm_lun_unb_var4(), FLA_Trmm_lut_unb_var3(), FLA_Trmm_lut_unb_var4(), FLA_Trmm_rlc_unb_var3(), FLA_Trmm_rlc_unb_var4(), FLA_Trmm_rlh_unb_var3(), FLA_Trmm_rlh_unb_var4(), FLA_Trmm_rln_unb_var3(), FLA_Trmm_rln_unb_var4(), FLA_Trmm_rlt_unb_var3(), FLA_Trmm_rlt_unb_var4(), FLA_Trmm_ruc_unb_var3(), FLA_Trmm_ruc_unb_var4(), FLA_Trmm_ruh_unb_var3(), FLA_Trmm_ruh_unb_var4(), FLA_Trmm_run_unb_var3(), FLA_Trmm_run_unb_var4(), FLA_Trmm_rut_unb_var3(), FLA_Trmm_rut_unb_var4(), FLA_Trmv(), FLA_Trmvsx_external(), FLA_Ttmm_l_unb_var3(), and FLA_Ttmm_u_unb_var3().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  uplo1_t blis_uplo;
20  trans1_t blis_trans;
21  diag1_t blis_diag;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Trmv_check( uplo, trans, diag, A, x );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  rs_A = FLA_Obj_row_stride( A );
32  cs_A = FLA_Obj_col_stride( A );
33 
34  inc_x = FLA_Obj_vector_inc( x );
35 
36  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
37  FLA_Param_map_flame_to_blis_trans( trans, &blis_trans );
38  FLA_Param_map_flame_to_blis_diag( diag, &blis_diag );
39 
40 
41  switch( datatype ){
42 
43  case FLA_FLOAT:
44  {
45  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
46  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
47 
48  bl1_strmv( blis_uplo,
49  blis_trans,
50  blis_diag,
51  m_A,
52  buff_A, rs_A, cs_A,
53  buff_x, inc_x );
54 
55  break;
56  }
57 
58  case FLA_DOUBLE:
59  {
60  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
61  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
62 
63  bl1_dtrmv( blis_uplo,
64  blis_trans,
65  blis_diag,
66  m_A,
67  buff_A, rs_A, cs_A,
68  buff_x, inc_x );
69 
70  break;
71  }
72 
73  case FLA_COMPLEX:
74  {
75  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
76  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
77 
78  bl1_ctrmv( blis_uplo,
79  blis_trans,
80  blis_diag,
81  m_A,
82  buff_A, rs_A, cs_A,
83  buff_x, inc_x );
84 
85  break;
86  }
87 
88  case FLA_DOUBLE_COMPLEX:
89  {
90  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
91  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
92 
93  bl1_ztrmv( blis_uplo,
94  blis_trans,
95  blis_diag,
96  m_A,
97  buff_A, rs_A, cs_A,
98  buff_x, inc_x );
99 
100  break;
101  }
102 
103  }
104 
105  return FLA_SUCCESS;
106 }
uplo1_t
Definition: blis_type_defs.h:60
void FLA_Param_map_flame_to_blis_trans(FLA_Trans trans, trans1_t *blis_trans)
Definition: FLA_Param.c:245
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
void bl1_dtrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, double *a, int a_rs, int a_cs, double *x, int incx)
Definition: bl1_trmv.c:56
diag1_t
Definition: blis_type_defs.h:72
trans1_t
Definition: blis_type_defs.h:52
void FLA_Param_map_flame_to_blis_diag(FLA_Diag diag, diag1_t *blis_diag)
Definition: FLA_Param.c:317
FLA_Error FLA_Trmv_check(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trmv_check.c:13
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
void bl1_strmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, float *a, int a_rs, int a_cs, float *x, int incx)
Definition: bl1_trmv.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void bl1_ztrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx)
Definition: bl1_trmv.c:177
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
void bl1_ctrmv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx)
Definition: bl1_trmv.c:99
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Trmvsx()

FLA_Error FLA_Trmvsx ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Trmvsx_external().

Referenced by FLA_Hess_UT_step_unb_var5().

14 {
15  return FLA_Trmvsx_external( uplo, transa, diag, alpha, A, x, beta, y );
16 }
FLA_Error FLA_Trmvsx_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Trmvsx_external.c:13

◆ FLA_Trmvsx_check()

FLA_Error FLA_Trmvsx_check ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), FLA_Check_valid_diag(), FLA_Check_valid_trans(), and FLA_Check_valid_uplo().

Referenced by FLA_Trmvsx_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_trans( transa );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_valid_diag( diag );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_floating_object( A );
27  FLA_Check_error_code( e_val );
28 
29  e_val = FLA_Check_nonconstant_object( A );
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_consistent_object_datatype( A, alpha );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_consistent_object_datatype( A, beta );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_scalar( alpha );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_if_scalar( beta );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_square( A );
51  FLA_Check_error_code( e_val );
52 
53  e_val = FLA_Check_if_vector( x );
54  FLA_Check_error_code( e_val );
55 
56  e_val = FLA_Check_if_vector( y );
57  FLA_Check_error_code( e_val );
58 
59  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, y );
60  FLA_Check_error_code( e_val );
61 
62  return FLA_SUCCESS;
63 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
FLA_Error FLA_Check_valid_trans(FLA_Trans trans)
Definition: FLA_Check.c:87
FLA_Error FLA_Check_valid_diag(FLA_Diag diag)
Definition: FLA_Check.c:100
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Trmvsx_external()

FLA_Error FLA_Trmvsx_external ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Axpy_external(), FLA_Check_error_level(), FLA_Copy_external(), FLA_Obj_create_conf_to(), FLA_Obj_free(), FLA_Obj_has_zero_dim(), FLA_Scal_external(), FLA_Trmv_external(), and FLA_Trmvsx_check().

Referenced by FLA_Trmvsx().

14 {
15  FLA_Obj x_copy;
16 
17  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
18  FLA_Trmvsx_check( uplo, transa, diag, alpha, A, x, beta, y );
19 
20  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
21 
22  FLA_Obj_create_conf_to( FLA_NO_TRANSPOSE, x, &x_copy );
23 
24  FLA_Copy_external( x, x_copy );
25 
26  FLA_Trmv_external( uplo, transa, diag, A, x_copy );
27 
28  FLA_Scal_external( beta, y );
29 
30  FLA_Axpy_external( alpha, x_copy, y );
31 
32  FLA_Obj_free( &x_copy );
33 
34  return FLA_SUCCESS;
35 }
FLA_Error FLA_Obj_free(FLA_Obj *obj)
Definition: FLA_Obj.c:588
FLA_Error FLA_Axpy_external(FLA_Obj alpha, FLA_Obj A, FLA_Obj B)
Definition: FLA_Axpy_external.c:13
FLA_Error FLA_Scal_external(FLA_Obj alpha, FLA_Obj A)
Definition: FLA_Scal_external.c:13
FLA_Error FLA_Trmvsx_check(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Trmvsx_check.c:13
FLA_Error FLA_Copy_external(FLA_Obj A, FLA_Obj B)
Definition: FLA_Copy_external.c:13
Definition: FLA_type_defs.h:158
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
FLA_Error FLA_Obj_create_conf_to(FLA_Trans trans, FLA_Obj old, FLA_Obj *obj)
Definition: FLA_Obj.c:286
FLA_Error FLA_Trmv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trmv_external.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18

◆ FLA_Trsv()

FLA_Error FLA_Trsv ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x 
)

References FLA_Check_error_level(), FLA_Trsv_check(), FLA_Trsv_external(), and FLA_Trsv_internal().

Referenced by FLA_Hess_UT_step_unb_var5(), FLA_Lyap_h_unb_var1(), FLA_Lyap_h_unb_var2(), FLA_Lyap_h_unb_var3(), FLA_Lyap_h_unb_var4(), FLA_Lyap_n_unb_var1(), FLA_Lyap_n_unb_var2(), FLA_Lyap_n_unb_var3(), and FLA_Lyap_n_unb_var4().

16 {
17  FLA_Error r_val;
18 
19  // Check parameters.
20  if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
21  FLA_Trsv_check( uplo, trans, diag, A, x );
22 
23 #ifdef FLA_ENABLE_BLAS2_FRONT_END_CNTL_TREES
24  // Invoke FLA_Trsv_internal() with flat control tree that simply calls
25  // external wrapper.
26  r_val = FLA_Trsv_internal( uplo, trans, diag, A, x, fla_trsv_cntl_blas );
27 
28 #else
29  r_val = FLA_Trsv_external( uplo, trans, diag, A, x );
30 #endif
31 
32  return r_val;
33 }
fla_trsv_t * fla_trsv_cntl_blas
Definition: FLA_Trsv_cntl_init.c:13
FLA_Error FLA_Trsv_check(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_check.c:13
int FLA_Error
Definition: FLA_type_defs.h:47
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
FLA_Error FLA_Trsv_internal(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x, fla_trsv_t *cntl)
Definition: FLA_Trsv_internal.c:16
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsv_check()

FLA_Error FLA_Trsv_check ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x 
)

References FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), FLA_Check_valid_diag(), FLA_Check_valid_trans(), and FLA_Check_valid_uplo().

Referenced by FLA_Trsv(), FLA_Trsv_external(), FLA_Trsv_external_gpu(), and FLASH_Trsv().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_trans( transa );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_valid_diag( diag );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_floating_object( A );
27  FLA_Check_error_code( e_val );
28 
29  e_val = FLA_Check_nonconstant_object( A );
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
35  e_val = FLA_Check_square( A );
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_if_vector( x );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, x );
42  FLA_Check_error_code( e_val );
43 
44  return FLA_SUCCESS;
45 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
FLA_Error FLA_Check_valid_trans(FLA_Trans trans)
Definition: FLA_Check.c:87
FLA_Error FLA_Check_valid_diag(FLA_Diag diag)
Definition: FLA_Check.c:100
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76

◆ FLA_Trsv_external()

FLA_Error FLA_Trsv_external ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x 
)

References bl1_ctrsv(), bl1_dtrsv(), bl1_strsv(), bl1_ztrsv(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_vector_inc(), FLA_Param_map_flame_to_blis_diag(), FLA_Param_map_flame_to_blis_trans(), FLA_Param_map_flame_to_blis_uplo(), and FLA_Trsv_check().

Referenced by FLA_Chol_l_unb_var1(), FLA_Chol_u_unb_var1(), FLA_Eig_gest_il_unb_var1(), FLA_Eig_gest_il_unb_var5(), FLA_Eig_gest_iu_unb_var1(), FLA_Eig_gest_iu_unb_var5(), FLA_LU_nopiv_unb_var1(), FLA_LU_nopiv_unb_var2(), FLA_LU_nopiv_unb_var3(), FLA_LU_piv_unb_var3(), FLA_LU_piv_unb_var3b(), FLA_Trinv_ln_unb_var2(), FLA_Trinv_ln_unb_var4(), FLA_Trinv_lu_unb_var2(), FLA_Trinv_lu_unb_var4(), FLA_Trinv_un_unb_var2(), FLA_Trinv_un_unb_var4(), FLA_Trinv_uu_unb_var2(), FLA_Trinv_uu_unb_var4(), FLA_Trsm_llc_unb_var3(), FLA_Trsm_llc_unb_var4(), FLA_Trsm_llh_unb_var3(), FLA_Trsm_llh_unb_var4(), FLA_Trsm_lln_unb_var3(), FLA_Trsm_lln_unb_var4(), FLA_Trsm_llt_unb_var3(), FLA_Trsm_llt_unb_var4(), FLA_Trsm_luc_unb_var3(), FLA_Trsm_luc_unb_var4(), FLA_Trsm_luh_unb_var3(), FLA_Trsm_luh_unb_var4(), FLA_Trsm_lun_unb_var3(), FLA_Trsm_lun_unb_var4(), FLA_Trsm_lut_unb_var3(), FLA_Trsm_lut_unb_var4(), FLA_Trsm_rlc_unb_var3(), FLA_Trsm_rlc_unb_var4(), FLA_Trsm_rlh_unb_var3(), FLA_Trsm_rlh_unb_var4(), FLA_Trsm_rln_unb_var3(), FLA_Trsm_rln_unb_var4(), FLA_Trsm_rlt_unb_var3(), FLA_Trsm_rlt_unb_var4(), FLA_Trsm_ruc_unb_var3(), FLA_Trsm_ruc_unb_var4(), FLA_Trsm_ruh_unb_var3(), FLA_Trsm_ruh_unb_var4(), FLA_Trsm_run_unb_var3(), FLA_Trsm_run_unb_var4(), FLA_Trsm_rut_unb_var3(), FLA_Trsm_rut_unb_var4(), FLA_Trsv(), FLA_Trsv_lc_task(), FLA_Trsv_ln_task(), FLA_Trsv_lt_task(), FLA_Trsv_task(), FLA_Trsv_uc_task(), FLA_Trsv_un_task(), FLA_Trsv_ut_task(), FLA_Trsvsx_external(), and FLASH_FS_incpiv_aux1().

14 {
15  FLA_Datatype datatype;
16  int m_A;
17  int rs_A, cs_A;
18  int inc_x;
19  uplo1_t blis_uplo;
20  trans1_t blis_trans;
21  diag1_t blis_diag;
22 
23  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
24  FLA_Trsv_check( uplo, trans, diag, A, x );
25 
26  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
27 
28  datatype = FLA_Obj_datatype( A );
29 
30  m_A = FLA_Obj_length( A );
31  rs_A = FLA_Obj_row_stride( A );
32  cs_A = FLA_Obj_col_stride( A );
33 
34  inc_x = FLA_Obj_vector_inc( x );
35 
36  FLA_Param_map_flame_to_blis_uplo( uplo, &blis_uplo );
37  FLA_Param_map_flame_to_blis_trans( trans, &blis_trans );
38  FLA_Param_map_flame_to_blis_diag( diag, &blis_diag );
39 
40 
41  switch( datatype ){
42 
43  case FLA_FLOAT:
44  {
45  float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
46  float *buff_x = ( float * ) FLA_FLOAT_PTR( x );
47 
48  bl1_strsv( blis_uplo,
49  blis_trans,
50  blis_diag,
51  m_A,
52  buff_A, rs_A, cs_A,
53  buff_x, inc_x );
54 
55  break;
56  }
57 
58  case FLA_DOUBLE:
59  {
60  double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
61  double *buff_x = ( double * ) FLA_DOUBLE_PTR( x );
62 
63  bl1_dtrsv( blis_uplo,
64  blis_trans,
65  blis_diag,
66  m_A,
67  buff_A, rs_A, cs_A,
68  buff_x, inc_x );
69 
70  break;
71  }
72 
73  case FLA_COMPLEX:
74  {
75  scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
76  scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x );
77 
78  bl1_ctrsv( blis_uplo,
79  blis_trans,
80  blis_diag,
81  m_A,
82  buff_A, rs_A, cs_A,
83  buff_x, inc_x );
84 
85  break;
86  }
87 
88  case FLA_DOUBLE_COMPLEX:
89  {
90  dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
91  dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x );
92 
93  bl1_ztrsv( blis_uplo,
94  blis_trans,
95  blis_diag,
96  m_A,
97  buff_A, rs_A, cs_A,
98  buff_x, inc_x );
99 
100  break;
101  }
102 
103  }
104 
105  return FLA_SUCCESS;
106 }
uplo1_t
Definition: blis_type_defs.h:60
void FLA_Param_map_flame_to_blis_trans(FLA_Trans trans, trans1_t *blis_trans)
Definition: FLA_Param.c:245
void bl1_ctrsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, scomplex *a, int a_rs, int a_cs, scomplex *x, int incx)
Definition: bl1_trsv.c:99
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
diag1_t
Definition: blis_type_defs.h:72
void bl1_strsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, float *a, int a_rs, int a_cs, float *x, int incx)
Definition: bl1_trsv.c:13
trans1_t
Definition: blis_type_defs.h:52
void FLA_Param_map_flame_to_blis_diag(FLA_Diag diag, diag1_t *blis_diag)
Definition: FLA_Param.c:317
FLA_Error FLA_Trsv_check(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_check.c:13
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_blis_uplo(FLA_Uplo uplo, uplo1_t *blis_uplo)
Definition: FLA_Param.c:285
Definition: blis_type_defs.h:132
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
void bl1_dtrsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, double *a, int a_rs, int a_cs, double *x, int incx)
Definition: bl1_trsv.c:56
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition: FLA_Query.c:145
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137
void bl1_ztrsv(uplo1_t uplo, trans1_t trans, diag1_t diag, int m, dcomplex *a, int a_rs, int a_cs, dcomplex *x, int incx)
Definition: bl1_trsv.c:177

◆ FLA_Trsv_external_gpu()

FLA_Error FLA_Trsv_external_gpu ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
void *  A_gpu,
FLA_Obj  x,
void *  x_gpu 
)

References FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_length(), FLA_Param_map_flame_to_netlib_diag(), FLA_Param_map_flame_to_netlib_trans(), FLA_Param_map_flame_to_netlib_uplo(), and FLA_Trsv_check().

Referenced by FLASH_Queue_exec_task_gpu().

18 {
19  FLA_Datatype datatype;
20  int m_A;
21  int ldim_A;
22  int inc_x;
23  char blas_uplo;
24  char blas_trans;
25  char blas_diag;
26 
27  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
28  FLA_Trsv_check( uplo, trans, diag, A, x );
29 
30  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
31 
32  datatype = FLA_Obj_datatype( A );
33 
34  m_A = FLA_Obj_length( A );
35  ldim_A = FLA_Obj_length( A );
36 
37  inc_x = 1;
38 
39  FLA_Param_map_flame_to_netlib_uplo( uplo, &blas_uplo );
40  FLA_Param_map_flame_to_netlib_trans( trans, &blas_trans );
41  FLA_Param_map_flame_to_netlib_diag( diag, &blas_diag );
42 
43 
44  switch( datatype ){
45 
46  case FLA_FLOAT:
47  {
48  strsv_( blas_uplo,
49  blas_trans,
50  blas_diag,
51  m_A,
52  ( float * ) A_gpu, ldim_A,
53  ( float * ) x_gpu, inc_x );
54 
55  break;
56  }
57 
58  case FLA_DOUBLE:
59  {
60  cublasDtrsv( blas_uplo,
61  blas_trans,
62  blas_diag,
63  m_A,
64  ( double * ) A_gpu, ldim_A,
65  ( double * ) x_gpu, inc_x );
66 
67  break;
68  }
69 
70  case FLA_COMPLEX:
71  {
72  cublasCtrsv( blas_uplo,
73  blas_trans,
74  blas_diag,
75  m_A,
76  ( cuComplex * ) A_gpu, ldim_A,
77  ( cuComplex * ) x_gpu, inc_x );
78 
79  break;
80  }
81 
82  case FLA_DOUBLE_COMPLEX:
83  {
84  cublasZtrsv( blas_uplo,
85  blas_trans,
86  blas_diag,
87  m_A,
88  ( cuDoubleComplex * ) A_gpu, ldim_A,
89  ( cuDoubleComplex * ) x_gpu, inc_x );
90 
91  break;
92  }
93 
94  }
95 
96  return FLA_SUCCESS;
97 }
void FLA_Param_map_flame_to_netlib_uplo(FLA_Uplo uplo, void *blas_uplo)
Definition: FLA_Param.c:47
void FLA_Param_map_flame_to_netlib_trans(FLA_Trans trans, void *blas_trans)
Definition: FLA_Param.c:15
FLA_Error FLA_Trsv_check(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_check.c:13
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
void FLA_Param_map_flame_to_netlib_diag(FLA_Diag diag, void *blas_diag)
Definition: FLA_Param.c:95
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116

◆ FLA_Trsv_internal_check()

FLA_Error FLA_Trsv_internal_check ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Check_identical_object_elemtype(), FLA_Check_matrix_vector_dims(), and FLA_Check_null_pointer().

Referenced by FLA_Trsv_internal().

14 {
15  FLA_Error e_val;
16 
17  // Abort if the control structure is NULL.
18  e_val = FLA_Check_null_pointer( ( void* ) cntl );
19  FLA_Check_error_code( e_val );
20 
21  // Verify that the object element types are identical.
23  FLA_Check_error_code( e_val );
24 
25  // Verify conformality between all the objects. This check works regardless
26  // of whether the element type is FLA_MATRIX or FLA_SCALAR because the
27  // element length and width are used instead of scalar length and width.
28  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, x );
29  FLA_Check_error_code( e_val );
30 
31  return FLA_SUCCESS;
32 }
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_identical_object_elemtype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:987
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_null_pointer(void *ptr)
Definition: FLA_Check.c:518

◆ FLA_Trsv_lc_task()

FLA_Error FLA_Trsv_lc_task ( FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Trsv_external().

Referenced by FLA_Trsv_lc().

19 {
20  return FLA_Trsv_external( FLA_LOWER_TRIANGULAR, FLA_CONJ_TRANSPOSE, diag, A, x );
21 }
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsv_ln_task()

FLA_Error FLA_Trsv_ln_task ( FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Trsv_external().

Referenced by FLA_Trsv_ln().

24 {
25  return FLA_Trsv_external( FLA_LOWER_TRIANGULAR, FLA_NO_TRANSPOSE, diag, A, x );
26 }
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsv_lt_task()

FLA_Error FLA_Trsv_lt_task ( FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Trsv_external().

Referenced by FLA_Trsv_lt().

29 {
30  return FLA_Trsv_external( FLA_LOWER_TRIANGULAR, FLA_TRANSPOSE, diag, A, x );
31 }
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsv_task()

FLA_Error FLA_Trsv_task ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Trsv_external().

Referenced by FLASH_Queue_exec_task(), and FLASH_Queue_exec_task_gpu().

14 {
15  return FLA_Trsv_external( uplo, trans, diag, A, x );
16 }
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsv_uc_task()

FLA_Error FLA_Trsv_uc_task ( FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Trsv_external().

Referenced by FLA_Trsv_uc().

34 {
35  return FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_CONJ_TRANSPOSE, diag, A, x );
36 }
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsv_un_task()

FLA_Error FLA_Trsv_un_task ( FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Trsv_external().

Referenced by FLA_Trsv_un().

39 {
40  return FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_NO_TRANSPOSE, diag, A, x );
41 }
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsv_ut_task()

FLA_Error FLA_Trsv_ut_task ( FLA_Diag  diag,
FLA_Obj  A,
FLA_Obj  x,
fla_trsv_t cntl 
)

References FLA_Trsv_external().

Referenced by FLA_Trsv_ut().

44 {
45  return FLA_Trsv_external( FLA_UPPER_TRIANGULAR, FLA_TRANSPOSE, diag, A, x );
46 }
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13

◆ FLA_Trsvsx()

FLA_Error FLA_Trsvsx ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Trsvsx_external().

14 {
15  return FLA_Trsvsx_external( uplo, transa, diag, alpha, A, x, beta, y );
16 }
FLA_Error FLA_Trsvsx_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Trsvsx_external.c:13

◆ FLA_Trsvsx_check()

FLA_Error FLA_Trsvsx_check ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Check_consistent_object_datatype(), FLA_Check_floating_object(), FLA_Check_identical_object_datatype(), FLA_Check_if_scalar(), FLA_Check_if_vector(), FLA_Check_matrix_vector_dims(), FLA_Check_nonconstant_object(), FLA_Check_square(), FLA_Check_valid_diag(), FLA_Check_valid_trans(), and FLA_Check_valid_uplo().

Referenced by FLA_Trsvsx_external().

14 {
15  FLA_Error e_val;
16 
17  e_val = FLA_Check_valid_uplo( uplo );
18  FLA_Check_error_code( e_val );
19 
20  e_val = FLA_Check_valid_trans( transa );
21  FLA_Check_error_code( e_val );
22 
23  e_val = FLA_Check_valid_diag( diag );
24  FLA_Check_error_code( e_val );
25 
26  e_val = FLA_Check_floating_object( A );
27  FLA_Check_error_code( e_val );
28 
29  e_val = FLA_Check_nonconstant_object( A );
30  FLA_Check_error_code( e_val );
31 
33  FLA_Check_error_code( e_val );
34 
36  FLA_Check_error_code( e_val );
37 
38  e_val = FLA_Check_consistent_object_datatype( A, alpha );
39  FLA_Check_error_code( e_val );
40 
41  e_val = FLA_Check_consistent_object_datatype( A, beta );
42  FLA_Check_error_code( e_val );
43 
44  e_val = FLA_Check_if_scalar( alpha );
45  FLA_Check_error_code( e_val );
46 
47  e_val = FLA_Check_if_scalar( beta );
48  FLA_Check_error_code( e_val );
49 
50  e_val = FLA_Check_square( A );
51  FLA_Check_error_code( e_val );
52 
53  e_val = FLA_Check_if_vector( x );
54  FLA_Check_error_code( e_val );
55 
56  e_val = FLA_Check_if_vector( y );
57  FLA_Check_error_code( e_val );
58 
59  e_val = FLA_Check_matrix_vector_dims( FLA_NO_TRANSPOSE, A, x, y );
60  FLA_Check_error_code( e_val );
61 
62  return FLA_SUCCESS;
63 }
FLA_Error FLA_Check_identical_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:967
FLA_Error FLA_Check_if_vector(FLA_Obj A)
Definition: FLA_Check.c:383
FLA_Error FLA_Check_valid_trans(FLA_Trans trans)
Definition: FLA_Check.c:87
FLA_Error FLA_Check_valid_diag(FLA_Diag diag)
Definition: FLA_Check.c:100
int FLA_Error
Definition: FLA_type_defs.h:47
FLA_Error FLA_Check_nonconstant_object(FLA_Obj A)
Definition: FLA_Check.c:954
FLA_Error FLA_Check_matrix_vector_dims(FLA_Trans trans, FLA_Obj A, FLA_Obj x, FLA_Obj y)
Definition: FLA_Check.c:453
FLA_Error FLA_Check_floating_object(FLA_Obj A)
Definition: FLA_Check.c:232
FLA_Error FLA_Check_if_scalar(FLA_Obj A)
Definition: FLA_Check.c:373
FLA_Error FLA_Check_square(FLA_Obj A)
Definition: FLA_Check.c:363
FLA_Error FLA_Check_valid_uplo(FLA_Uplo uplo)
Definition: FLA_Check.c:76
FLA_Error FLA_Check_consistent_object_datatype(FLA_Obj A, FLA_Obj B)
Definition: FLA_Check.c:339

◆ FLA_Trsvsx_external()

FLA_Error FLA_Trsvsx_external ( FLA_Uplo  uplo,
FLA_Trans  transa,
FLA_Diag  diag,
FLA_Obj  alpha,
FLA_Obj  A,
FLA_Obj  x,
FLA_Obj  beta,
FLA_Obj  y 
)

References FLA_Axpy_external(), FLA_Check_error_level(), FLA_Copy_external(), FLA_Obj_create_conf_to(), FLA_Obj_free(), FLA_Obj_has_zero_dim(), FLA_Scal_external(), FLA_Trsv_external(), and FLA_Trsvsx_check().

Referenced by FLA_Trsvsx().

14 {
15  FLA_Obj x_copy;
16 
17  if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
18  FLA_Trsvsx_check( uplo, transa, diag, alpha, A, x, beta, y );
19 
20  if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
21 
22  FLA_Obj_create_conf_to( FLA_NO_TRANSPOSE, x, &x_copy );
23 
24  FLA_Copy_external( x, x_copy );
25 
26  FLA_Trsv_external( uplo, transa, diag, A, x_copy );
27 
28  FLA_Scal_external( beta, y );
29 
30  FLA_Axpy_external( alpha, x_copy, y );
31 
32  FLA_Obj_free( &x_copy );
33 
34  return FLA_SUCCESS;
35 }
FLA_Error FLA_Obj_free(FLA_Obj *obj)
Definition: FLA_Obj.c:588
FLA_Error FLA_Axpy_external(FLA_Obj alpha, FLA_Obj A, FLA_Obj B)
Definition: FLA_Axpy_external.c:13
FLA_Error FLA_Scal_external(FLA_Obj alpha, FLA_Obj A)
Definition: FLA_Scal_external.c:13
FLA_Error FLA_Copy_external(FLA_Obj A, FLA_Obj B)
Definition: FLA_Copy_external.c:13
Definition: FLA_type_defs.h:158
FLA_Bool FLA_Obj_has_zero_dim(FLA_Obj A)
Definition: FLA_Query.c:400
FLA_Error FLA_Obj_create_conf_to(FLA_Trans trans, FLA_Obj old, FLA_Obj *obj)
Definition: FLA_Obj.c:286
FLA_Error FLA_Trsvsx_check(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj alpha, FLA_Obj A, FLA_Obj x, FLA_Obj beta, FLA_Obj y)
Definition: FLA_Trsvsx_check.c:13
unsigned int FLA_Check_error_level(void)
Definition: FLA_Check.c:18
FLA_Error FLA_Trsv_external(FLA_Uplo uplo, FLA_Trans transa, FLA_Diag diag, FLA_Obj A, FLA_Obj x)
Definition: FLA_Trsv_external.c:13