libflame revision_anchor
FLA_Shift_diag.c File Reference

(r)

Functions

FLA_Error FLA_Shift_diag (FLA_Conj conj, FLA_Obj sigma, FLA_Obj A)
 

Function Documentation

◆ FLA_Shift_diag()

FLA_Error FLA_Shift_diag ( FLA_Conj conj,
FLA_Obj sigma,
FLA_Obj A )
14{
15 FLA_Datatype datatype_A;
16 FLA_Datatype datatype_sigma;
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_Shift_diag_check( conj, sigma, A );
23
24 datatype_A = FLA_Obj_datatype( A );
25 datatype_sigma = FLA_Obj_datatype( sigma );
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_sigma = ( float * ) FLA_FLOAT_PTR( sigma );
39
40 bl1_sshiftdiag( blis_conj,
41 0,
42 m_A,
43 n_A,
44 buff_sigma,
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_sigma = ( double * ) FLA_DOUBLE_PTR( sigma );
53
54 bl1_dshiftdiag( blis_conj,
55 0,
56 m_A,
57 n_A,
58 buff_sigma,
59 buff_A, rs_A, cs_A );
60
61 break;
62 }
63
64 case FLA_COMPLEX:
65 {
66 if ( datatype_sigma == FLA_COMPLEX )
67 {
68 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
69 scomplex *buff_sigma = ( scomplex * ) FLA_COMPLEX_PTR( sigma );
70
71 bl1_cshiftdiag( blis_conj,
72 0,
73 m_A,
74 n_A,
75 buff_sigma,
76 buff_A, rs_A, cs_A );
77 }
78 else
79 {
80 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
81 float *buff_sigma = ( float * ) FLA_FLOAT_PTR( sigma );
82
83 bl1_csshiftdiag( blis_conj,
84 0,
85 m_A,
86 n_A,
87 buff_sigma,
88 buff_A, rs_A, cs_A );
89 }
90
91 break;
92 }
93
94 case FLA_DOUBLE_COMPLEX:
95 {
96 if ( datatype_sigma == FLA_DOUBLE_COMPLEX )
97 {
98 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
99 dcomplex *buff_sigma = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( sigma );
100
101 bl1_zshiftdiag( blis_conj,
102 0,
103 m_A,
104 n_A,
105 buff_sigma,
106 buff_A, rs_A, cs_A );
107 }
108 else
109 {
110 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
111 double *buff_sigma = ( double * ) FLA_DOUBLE_PTR( sigma );
112
113 bl1_zdshiftdiag( blis_conj,
114 0,
115 m_A,
116 n_A,
117 buff_sigma,
118 buff_A, rs_A, cs_A );
119 }
120
121 break;
122 }
123
124 }
125
126 return FLA_SUCCESS;
127}
FLA_Error FLA_Shift_diag_check(FLA_Conj conj, FLA_Obj sigma, FLA_Obj A)
Definition FLA_Shift_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_cshiftdiag(conj1_t conj, int offset, int m, int n, scomplex *sigma, scomplex *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:97
void bl1_dshiftdiag(conj1_t conj, int offset, int m, int n, double *sigma, double *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:34
void bl1_zdshiftdiag(conj1_t conj, int offset, int m, int n, double *sigma, dcomplex *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:76
void bl1_csshiftdiag(conj1_t conj, int offset, int m, int n, float *sigma, scomplex *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:55
void bl1_zshiftdiag(conj1_t conj, int offset, int m, int n, dcomplex *sigma, dcomplex *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:122
void bl1_sshiftdiag(conj1_t conj, int offset, int m, int n, float *sigma, float *a, int a_rs, int a_cs)
Definition bl1_shiftdiag.c:13
conj1_t
Definition blis_type_defs.h:80
Definition blis_type_defs.h:138
Definition blis_type_defs.h:133

References bl1_cshiftdiag(), bl1_csshiftdiag(), bl1_dshiftdiag(), bl1_sshiftdiag(), bl1_zdshiftdiag(), bl1_zshiftdiag(), 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_Shift_diag_check().

Referenced by 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(), FLA_Lyap_n_unb_var4(), and FLASH_Shift_diag().