29{
31 int i, m, inc_a, inc_b, inc_d, inc_e;
32
34
36
39
42
43 switch ( datatype )
44 {
45 case FLA_FLOAT:
46 {
47 float* buff_d = FLA_FLOAT_PTR( d );
48 float* buff_e = FLA_FLOAT_PTR( e );
49 float* buff_1 = FLA_FLOAT_PTR(
FLA_ONE );
50
52 buff_1,
53 buff_d, inc_d );
54
56 buff_1,
57 buff_e, inc_e );
58
59 break;
60 }
61 case FLA_DOUBLE:
62 {
63 double* buff_d = FLA_DOUBLE_PTR( d );
64 double* buff_e = FLA_DOUBLE_PTR( e );
65 double* buff_1 = FLA_DOUBLE_PTR(
FLA_ONE );
66
68 buff_1,
69 buff_d, inc_d );
70
72 buff_1,
73 buff_e, inc_e );
74
75 break;
76 }
77 case FLA_COMPLEX:
78 {
79 scomplex* buff_a = FLA_COMPLEX_PTR( a );
80 scomplex* buff_b = ( m > 1 ? FLA_COMPLEX_PTR( b ) : NULL );
81 scomplex* buff_d = FLA_COMPLEX_PTR( d );
82 scomplex* buff_e = FLA_COMPLEX_PTR( e );
84 float* buff_0 = FLA_FLOAT_PTR(
FLA_ZERO );
85
86 for (
i = 0;
i < m; ++
i )
87 {
91
93
95 {
96 *delta1 = *buff_1;
97 }
98 else
99 {
101 if ( beta1->
imag == 0.0F )
102 *delta1 = *buff_1;
103 else
104 {
106 bl1_cabsval2( beta1, &absv );
107 bl1_cinvscals( &absv, delta1 );
108
109 bl1_cscals( delta1, beta1 );
110 beta1->
imag = *buff_0;
111
112 bl1_cscals( delta1,
alpha1 );
113 }
114 }
115
116 if (
alpha1->imag == 0.0F )
117 *epsilon1 = *buff_1;
118 else
119 {
121 bl1_cabsval2(
alpha1, &absv );
122 bl1_cinvscals( &absv, epsilon1 );
123
124 bl1_cscals( epsilon1,
alpha1 );
126 }
127
129 {
131 bl1_cscals( epsilon1, beta2 );
132 }
133 }
134 break;
135 }
136 case FLA_DOUBLE_COMPLEX:
137 {
138 dcomplex* buff_a = FLA_DOUBLE_COMPLEX_PTR( a );
139 dcomplex* buff_b = ( m > 1 ? FLA_DOUBLE_COMPLEX_PTR( b ) : NULL );
140 dcomplex* buff_d = FLA_DOUBLE_COMPLEX_PTR( d );
141 dcomplex* buff_e = FLA_DOUBLE_COMPLEX_PTR( e );
143 double* buff_0 = FLA_DOUBLE_PTR(
FLA_ZERO );
144
145 for (
i = 0;
i < m; ++
i )
146 {
149 dcomplex* epsilon1 = buff_e + (
i )*inc_e;
150
152
154 {
155 *delta1 = *buff_1;
156 }
157 else
158 {
161 bl1_zabsval2( beta1, &absv );
162 bl1_zinvscals( &absv, delta1 );
163
165 beta1->
imag = *buff_0;
166
168 }
169
171 bl1_zabsval2(
alpha1, &absv );
172 bl1_zinvscals( &absv, epsilon1 );
173
176
178 {
181 }
182 }
183 break;
184 }
185 }
186 return FLA_SUCCESS;
187}
FLA_Obj FLA_ZERO
Definition FLA_Init.c:20
FLA_Obj FLA_ONE
Definition FLA_Init.c:18
dim_t FLA_Obj_vector_inc(FLA_Obj obj)
Definition FLA_Query.c:145
dim_t FLA_Obj_vector_dim(FLA_Obj obj)
Definition FLA_Query.c:137
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition FLA_Query.c:13
int FLA_Datatype
Definition FLA_type_defs.h:49
int i
Definition bl1_axmyv2.c:145
double *restrict alpha1
Definition bl1_axpyv2bdotaxpy.c:198
void bl1_dsetv(int m, double *sigma, double *x, int incx)
Definition bl1_setv.c:39
void bl1_ssetv(int m, float *sigma, float *x, int incx)
Definition bl1_setv.c:26
@ BLIS1_CONJUGATE
Definition blis_type_defs.h:82
Definition blis_type_defs.h:138
double imag
Definition blis_type_defs.h:139
Definition blis_type_defs.h:133
float imag
Definition blis_type_defs.h:134