libflame revision_anchor
Functions
FLA_Tridiag_UT_realify_subdiagonal.c File Reference

(r)

Functions

FLA_Error FLA_Tridiag_UT_realify_subdiagonal (FLA_Obj b, FLA_Obj d)
 
FLA_Error FLA_Tridiag_UT_realify_subdiagonal_opt (FLA_Obj b, FLA_Obj d)
 

Function Documentation

◆ FLA_Tridiag_UT_realify_subdiagonal()

FLA_Error FLA_Tridiag_UT_realify_subdiagonal ( FLA_Obj  b,
FLA_Obj  d 
)
14{
16
19
21
22 return r_val;
23}
FLA_Error FLA_Tridiag_UT_realify_subdiagonal_opt(FLA_Obj b, FLA_Obj d)
Definition FLA_Tridiag_UT_realify_subdiagonal.c:25
FLA_Error FLA_Tridiag_UT_realify_subdiagonal_check(FLA_Obj b, FLA_Obj d)
Definition FLA_Tridiag_UT_realify_subdiagonal_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_Check_error_level(), FLA_Tridiag_UT_realify_subdiagonal_check(), FLA_Tridiag_UT_realify_subdiagonal_opt(), and i.

◆ FLA_Tridiag_UT_realify_subdiagonal_opt()

FLA_Error FLA_Tridiag_UT_realify_subdiagonal_opt ( FLA_Obj  b,
FLA_Obj  d 
)
26{
27 FLA_Datatype datatype;
28 int m, inc_b, inc_d;
29 int i;
30
31 datatype = FLA_Obj_datatype( d );
32
33 m = FLA_Obj_vector_dim( d );
35
36 inc_b = ( m > 1 ? FLA_Obj_vector_inc( b ) : 0 );
37
38 switch ( datatype )
39 {
40 case FLA_FLOAT:
41 {
42 float* buff_d = FLA_FLOAT_PTR( d );
43 float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
44
45 bl1_ssetv( m,
46 buff_1,
47 buff_d, inc_d );
48
49 break;
50 }
51 case FLA_DOUBLE:
52 {
53 double* buff_d = FLA_DOUBLE_PTR( d );
54 double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
55
56 bl1_dsetv( m,
57 buff_1,
58 buff_d, inc_d );
59
60 break;
61 }
62 case FLA_COMPLEX:
63 {
64 scomplex* buff_b = ( m > 1 ? FLA_COMPLEX_PTR( b ) : NULL );
67
68 bl1_csetv( 1,
69 buff_1,
70 buff_d, inc_d );
71
72 for ( i = 1; i < m; ++i )
73 {
74 scomplex* beta1 = buff_b + (i-1)*inc_b;
78
79 if ( beta1->imag == 0.0F )
80 *delta1 = *buff_1;
81 else
82 {
86
87 *beta1 = absv;
88 }
89 if ( i < ( m - 1 ) )
90 {
91 scomplex* beta2 = buff_b + (i )*inc_b;
94 }
95 }
96 break;
97 }
99 {
100 dcomplex* buff_b = ( m > 1 ? FLA_DOUBLE_COMPLEX_PTR( b ) : NULL );
103
104 bl1_zsetv( 1,
105 buff_1,
106 buff_d, inc_d );
107
108 for ( i = 1; i < m; ++i )
109 {
110 dcomplex* beta1 = buff_b + (i-1)*inc_b;
111 dcomplex* delta1 = buff_d + (i )*inc_d;
114
115 if ( beta1->imag == 0.0 )
116 *delta1 = *buff_1;
117 else
118 {
122
123 *beta1 = absv;
124 }
125 if ( i < ( m - 1 ) )
126 {
127 dcomplex* beta2 = buff_b + (i )*inc_b;
130 }
131 }
132 break;
133 }
134 }
135
136 return FLA_SUCCESS;
137}
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
bl1_zscals(beta, rho_yz)
void bl1_dsetv(int m, double *sigma, double *x, int incx)
Definition bl1_setv.c:39
void bl1_zsetv(int m, dcomplex *sigma, dcomplex *x, int incx)
Definition bl1_setv.c:66
void bl1_csetv(int m, scomplex *sigma, scomplex *x, int incx)
Definition bl1_setv.c:52
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 bl1_csetv(), bl1_dsetv(), bl1_ssetv(), bl1_zscals(), bl1_zsetv(), BLIS1_CONJUGATE, FLA_Obj_datatype(), FLA_Obj_vector_dim(), FLA_Obj_vector_inc(), FLA_ONE, and i.

Referenced by FLA_Tridiag_UT_realify_subdiagonal().