libflame  revision_anchor
Functions
FLA_Syr_external.c File Reference

(r)

Functions

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

Function Documentation

◆ 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