libflame revision_anchor
Functions
FLA_Bidiag_UT_realify_diagonals.c File Reference

(r)

Functions

FLA_Error FLA_Bidiag_UT_realify_diagonals (FLA_Uplo uplo, FLA_Obj a, FLA_Obj b, FLA_Obj d, FLA_Obj e)
 
FLA_Error FLA_Bidiag_UT_realify_diagonals_opt (FLA_Obj a, FLA_Obj b, FLA_Obj d, FLA_Obj e)
 

Function Documentation

◆ FLA_Bidiag_UT_realify_diagonals()

FLA_Error FLA_Bidiag_UT_realify_diagonals ( FLA_Uplo  uplo,
FLA_Obj  a,
FLA_Obj  b,
FLA_Obj  d,
FLA_Obj  e 
)
14{
16
19
20 if ( uplo == FLA_LOWER_TRIANGULAR )
22 else
24
25 return r_val;
26}
FLA_Error FLA_Bidiag_UT_realify_diagonals_opt(FLA_Obj a, FLA_Obj b, FLA_Obj d, FLA_Obj e)
Definition FLA_Bidiag_UT_realify_diagonals.c:28
FLA_Error FLA_Bidiag_UT_realify_diagonals_check(FLA_Uplo uplo, FLA_Obj a, FLA_Obj b, FLA_Obj d, FLA_Obj e)
Definition FLA_Bidiag_UT_realify_diagonals_check.c:13
unsigned int FLA_Check_error_level(void)
Definition FLA_Check.c:18
int FLA_Error
Definition FLA_type_defs.h:47
int i
Definition bl1_axmyv2.c:145

References FLA_Bidiag_UT_realify_diagonals_check(), FLA_Bidiag_UT_realify_diagonals_opt(), FLA_Check_error_level(), and i.

◆ FLA_Bidiag_UT_realify_diagonals_opt()

FLA_Error FLA_Bidiag_UT_realify_diagonals_opt ( FLA_Obj  a,
FLA_Obj  b,
FLA_Obj  d,
FLA_Obj  e 
)
29{
30 FLA_Datatype datatype;
31 int i, m, inc_a, inc_b, inc_d, inc_e;
32
33 datatype = FLA_Obj_datatype( a );
34
35 m = FLA_Obj_vector_dim( a );
36
38 inc_b = ( m > 1 ? FLA_Obj_vector_inc( b ) : 0 );
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
51 bl1_ssetv( m,
52 buff_1,
53 buff_d, inc_d );
54
55 bl1_ssetv( m,
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
67 bl1_dsetv( m,
68 buff_1,
69 buff_d, inc_d );
70
71 bl1_dsetv( m,
72 buff_1,
73 buff_e, inc_e );
74
75 break;
76 }
77 case FLA_COMPLEX:
78 {
80 scomplex* buff_b = ( m > 1 ? FLA_COMPLEX_PTR( b ) : NULL );
84 float* buff_0 = FLA_FLOAT_PTR( FLA_ZERO );
85
86 for ( i = 0; i < m; ++i )
87 {
91
93
94 if ( i == 0 )
95 {
96 *delta1 = *buff_1;
97 }
98 else
99 {
100 scomplex* beta1 = buff_b + (i-1)*inc_b;
101 if ( beta1->imag == 0.0F )
102 *delta1 = *buff_1;
103 else
104 {
108
110 beta1->imag = *buff_0;
111
113 }
114 }
115
116 if ( alpha1->imag == 0.0F )
117 *epsilon1 = *buff_1;
118 else
119 {
123
125 alpha1->imag = *buff_0;
126 }
127
128 if ( i < ( m - 1 ) )
129 {
130 scomplex* beta2 = buff_b + (i )*inc_b;
132 }
133 }
134 break;
135 }
137 {
139 dcomplex* buff_b = ( m > 1 ? FLA_DOUBLE_COMPLEX_PTR( b ) : NULL );
143 double* buff_0 = FLA_DOUBLE_PTR( FLA_ZERO );
144
145 for ( i = 0; i < m; ++i )
146 {
147 dcomplex* alpha1 = buff_a + (i )*inc_a;
148 dcomplex* delta1 = buff_d + (i )*inc_d;
150
152
153 if ( i == 0 )
154 {
155 *delta1 = *buff_1;
156 }
157 else
158 {
159 dcomplex* beta1 = buff_b + (i-1)*inc_b;
163
165 beta1->imag = *buff_0;
166
168 }
169
173
175 alpha1->imag = *buff_0;
176
177 if ( i < ( m - 1 ) )
178 {
179 dcomplex* beta2 = buff_b + (i )*inc_b;
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
double *restrict alpha1
Definition bl1_axpyv2bdotaxpy.c:198
bl1_zscals(beta, rho_yz)
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
Definition blis_type_defs.h:133

References alpha1, bl1_dsetv(), bl1_ssetv(), bl1_zscals(), BLIS1_CONJUGATE, FLA_Obj_datatype(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_ONE, FLA_ZERO, and i.

Referenced by FLA_Bidiag_UT_realify_diagonals().