libflame revision_anchor
FLA_Scale_diag.c File Reference

(r)

Functions

FLA_Error FLA_Scale_diag (FLA_Conj conj, FLA_Obj alpha, FLA_Obj A)
 

Function Documentation

◆ FLA_Scale_diag()

FLA_Error FLA_Scale_diag ( FLA_Conj conj,
FLA_Obj alpha,
FLA_Obj A )
14{
15 FLA_Datatype datatype_A;
16 FLA_Datatype datatype_alpha;
17 dim_t m_A, n_A;
18 dim_t rs_A, cs_A;
19 conj1_t blis_conj;
20
21 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING )
22 FLA_Scale_diag_check( conj, alpha, A );
23
24 datatype_A = FLA_Obj_datatype( A );
25 datatype_alpha = FLA_Obj_datatype( alpha );
26 m_A = FLA_Obj_length( A );
27 n_A = FLA_Obj_width( A );
28 rs_A = FLA_Obj_row_stride( A );
29 cs_A = FLA_Obj_col_stride( A );
30
31 FLA_Param_map_flame_to_blis_conj( conj, &blis_conj );
32
33 switch( datatype_A ){
34
35 case FLA_FLOAT:
36 {
37 float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
38 float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
39
40 bl1_sscalediag( blis_conj,
41 0,
42 m_A,
43 n_A,
44 buff_alpha,
45 buff_A, rs_A, cs_A );
46
47 break;
48 }
49 case FLA_DOUBLE:
50 {
51 double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
52 double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
53
54 bl1_dscalediag( blis_conj,
55 0,
56 m_A,
57 n_A,
58 buff_alpha,
59 buff_A, rs_A, cs_A );
60
61 break;
62 }
63
64 case FLA_COMPLEX:
65 {
66 if ( datatype_alpha == FLA_COMPLEX )
67 {
68 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
69 scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha );
70
71 bl1_cscalediag( blis_conj,
72 0,
73 m_A,
74 n_A,
75 buff_alpha,
76 buff_A, rs_A, cs_A );
77 }
78 else
79 {
80 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
81 float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha );
82
83 bl1_csscalediag( blis_conj,
84 0,
85 m_A,
86 n_A,
87 buff_alpha,
88 buff_A, rs_A, cs_A );
89 }
90
91 break;
92 }
93
94 case FLA_DOUBLE_COMPLEX:
95 {
96 if ( datatype_alpha == FLA_DOUBLE_COMPLEX )
97 {
98 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
99 dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha );
100
101 bl1_zscalediag( blis_conj,
102 0,
103 m_A,
104 n_A,
105 buff_alpha,
106 buff_A, rs_A, cs_A );
107 }
108 else
109 {
110 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
111 double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha );
112
113 bl1_zdscalediag( blis_conj,
114 0,
115 m_A,
116 n_A,
117 buff_alpha,
118 buff_A, rs_A, cs_A );
119 }
120
121 break;
122 }
123
124 }
125
126 return FLA_SUCCESS;
127}
FLA_Error FLA_Scale_diag_check(FLA_Conj conj, FLA_Obj alpha, FLA_Obj A)
Definition FLA_Scale_diag_check.c:13
dim_t FLA_Obj_width(FLA_Obj obj)
Definition FLA_Query.c:123
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition FLA_Query.c:167
dim_t FLA_Obj_length(FLA_Obj obj)
Definition FLA_Query.c:116
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition FLA_Query.c:174
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
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
unsigned long dim_t
Definition FLA_type_defs.h:71
void bl1_zdscalediag(conj1_t conj, int offset, int m, int n, double *sigma, dcomplex *a, int a_rs, int a_cs)
Definition bl1_scalediag.c:77
void bl1_cscalediag(conj1_t conj, int offset, int m, int n, scomplex *sigma, scomplex *a, int a_rs, int a_cs)
Definition bl1_scalediag.c:99
void bl1_dscalediag(conj1_t conj, int offset, int m, int n, double *sigma, double *a, int a_rs, int a_cs)
Definition bl1_scalediag.c:34
void bl1_csscalediag(conj1_t conj, int offset, int m, int n, float *sigma, scomplex *a, int a_rs, int a_cs)
Definition bl1_scalediag.c:55
void bl1_zscalediag(conj1_t conj, int offset, int m, int n, dcomplex *sigma, dcomplex *a, int a_rs, int a_cs)
Definition bl1_scalediag.c:123
void bl1_sscalediag(conj1_t conj, int offset, int m, int n, float *sigma, float *a, int a_rs, int a_cs)
Definition bl1_scalediag.c:13
conj1_t
Definition blis_type_defs.h:80
Definition blis_type_defs.h:138
Definition blis_type_defs.h:133

References bl1_cscalediag(), bl1_csscalediag(), bl1_dscalediag(), bl1_sscalediag(), bl1_zdscalediag(), bl1_zscalediag(), FLA_Check_error_level(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_Obj_width(), FLA_Param_map_flame_to_blis_conj(), and FLA_Scale_diag_check().

Referenced by FLA_UDdate_UT_unb_var1().