libflame  revision_anchor
Functions
FLA_Apply_G_rf_blk_var3.c File Reference

(r)

Functions

FLA_Error FLA_Apply_G_rf_blk_var3 (FLA_Obj G, FLA_Obj A, dim_t b_alg)
 
FLA_Error FLA_Apply_G_rf_bls_var3 (int k_G, int m_A, int n_A, scomplex *buff_G, int rs_G, int cs_G, float *buff_A, int rs_A, int cs_A, int b_alg)
 
FLA_Error FLA_Apply_G_rf_bld_var3 (int k_G, int m_A, int n_A, dcomplex *buff_G, int rs_G, int cs_G, double *buff_A, int rs_A, int cs_A, int b_alg)
 
FLA_Error FLA_Apply_G_rf_blc_var3 (int k_G, int m_A, int n_A, scomplex *buff_G, int rs_G, int cs_G, scomplex *buff_A, int rs_A, int cs_A, int b_alg)
 
FLA_Error FLA_Apply_G_rf_blz_var3 (int k_G, int m_A, int n_A, dcomplex *buff_G, int rs_G, int cs_G, dcomplex *buff_A, int rs_A, int cs_A, int b_alg)
 

Function Documentation

◆ FLA_Apply_G_rf_blc_var3()

FLA_Error FLA_Apply_G_rf_blc_var3 ( int  k_G,
int  m_A,
int  n_A,
scomplex buff_G,
int  rs_G,
int  cs_G,
scomplex buff_A,
int  rs_A,
int  cs_A,
int  b_alg 
)

References FLA_Apply_G_rf_opc_var3(), and i.

Referenced by FLA_Apply_G_lf_blk_var3(), FLA_Apply_G_rf_blk_var3(), FLA_Bsvd_ext_opc_var1(), and FLA_Bsvd_v_opc_var1().

163 {
164  int i;
165  int b = 0;
166 
167  for ( i = 0; i < m_A; i += b )
168  {
169  scomplex* A1 = buff_A + (0 )*cs_A + (i )*rs_A;
170  int m_ahead = max( 0, m_A - i );
171 
172  b = min( b_alg, m_ahead );
173 
174  // ass_var3 does not support arbitrary strides: TODO
176  //FLA_Apply_G_rf_asc_var3( k_G,
177  b,
178  n_A,
179  buff_G, rs_G, cs_G,
180  A1, rs_A, cs_A );
181  }
182 
183  return FLA_SUCCESS;
184 }
FLA_Error FLA_Apply_G_rf_opc_var3(int k_G, int m_A, int n_A, scomplex *buff_G, int rs_G, int cs_G, scomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Apply_G_rf_opt_var3.c:1018
Definition: blis_type_defs.h:132
int i
Definition: bl1_axmyv2.c:145

◆ FLA_Apply_G_rf_bld_var3()

FLA_Error FLA_Apply_G_rf_bld_var3 ( int  k_G,
int  m_A,
int  n_A,
dcomplex buff_G,
int  rs_G,
int  cs_G,
double *  buff_A,
int  rs_A,
int  cs_A,
int  b_alg 
)

References FLA_Apply_G_rf_opd_var3(), and i.

Referenced by FLA_Apply_G_lf_blk_var3(), FLA_Apply_G_rf_blk_var3(), FLA_Bsvd_ext_opd_var1(), FLA_Bsvd_v_opd_var1(), and FLA_Tevd_v_opd_var1().

134 {
135  int i;
136  int b = 0;
137 
138  for ( i = 0; i < m_A; i += b )
139  {
140  double* A1 = buff_A + (0 )*cs_A + (i )*rs_A;
141  int m_ahead = max( 0, m_A - i );
142 
143  b = min( b_alg, m_ahead );
144 
145  // ass_var3 does not support arbitrary strides: TODO
147  //FLA_Apply_G_rf_asd_var3( k_G,
148  b,
149  n_A,
150  buff_G, rs_G, cs_G,
151  A1, rs_A, cs_A );
152  }
153 
154  return FLA_SUCCESS;
155 }
FLA_Error FLA_Apply_G_rf_opd_var3(int k_G, int m_A, int n_A, dcomplex *buff_G, int rs_G, int cs_G, double *buff_A, int rs_A, int cs_A)
Definition: FLA_Apply_G_rf_opt_var3.c:565
int i
Definition: bl1_axmyv2.c:145

◆ FLA_Apply_G_rf_blk_var3()

FLA_Error FLA_Apply_G_rf_blk_var3 ( FLA_Obj  G,
FLA_Obj  A,
dim_t  b_alg 
)

References FLA_Apply_G_rf_blc_var3(), FLA_Apply_G_rf_bld_var3(), FLA_Apply_G_rf_bls_var3(), FLA_Apply_G_rf_blz_var3(), FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), and FLA_Obj_width().

14 {
15  FLA_Datatype datatype;
16  int k_G, m_A, n_A;
17  int rs_G, cs_G;
18  int rs_A, cs_A;
19 
20  datatype = FLA_Obj_datatype( A );
21 
22  k_G = FLA_Obj_width( G );
23  m_A = FLA_Obj_length( A );
24  n_A = FLA_Obj_width( A );
25 
26  rs_G = FLA_Obj_row_stride( G );
27  cs_G = FLA_Obj_col_stride( G );
28 
29  rs_A = FLA_Obj_row_stride( A );
30  cs_A = FLA_Obj_col_stride( A );
31 
32  switch ( datatype )
33  {
34  case FLA_FLOAT:
35  {
36  scomplex* buff_G = ( scomplex* ) FLA_COMPLEX_PTR( G );
37  float* buff_A = ( float* ) FLA_FLOAT_PTR( A );
38 
40  m_A,
41  n_A,
42  buff_G, rs_G, cs_G,
43  buff_A, rs_A, cs_A,
44  b_alg );
45 
46  break;
47  }
48 
49  case FLA_DOUBLE:
50  {
51  dcomplex* buff_G = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( G );
52  double* buff_A = ( double* ) FLA_DOUBLE_PTR( A );
53 
55  m_A,
56  n_A,
57  buff_G, rs_G, cs_G,
58  buff_A, rs_A, cs_A,
59  b_alg );
60 
61  break;
62  }
63 
64  case FLA_COMPLEX:
65  {
66  scomplex* buff_G = ( scomplex* ) FLA_COMPLEX_PTR( G );
67  scomplex* buff_A = ( scomplex* ) FLA_COMPLEX_PTR( A );
68 
70  m_A,
71  n_A,
72  buff_G, rs_G, cs_G,
73  buff_A, rs_A, cs_A,
74  b_alg );
75 
76  break;
77  }
78 
79  case FLA_DOUBLE_COMPLEX:
80  {
81  dcomplex* buff_G = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( G );
82  dcomplex* buff_A = ( dcomplex* ) FLA_DOUBLE_COMPLEX_PTR( A );
83 
85  m_A,
86  n_A,
87  buff_G, rs_G, cs_G,
88  buff_A, rs_A, cs_A,
89  b_alg );
90 
91  break;
92  }
93  }
94 
95  return FLA_SUCCESS;
96 }
FLA_Error FLA_Apply_G_rf_bls_var3(int k_G, int m_A, int n_A, scomplex *buff_G, int rs_G, int cs_G, float *buff_A, int rs_A, int cs_A, int b_alg)
Definition: FLA_Apply_G_rf_blk_var3.c:99
dim_t FLA_Obj_row_stride(FLA_Obj obj)
Definition: FLA_Query.c:167
FLA_Datatype FLA_Obj_datatype(FLA_Obj obj)
Definition: FLA_Query.c:13
dim_t FLA_Obj_width(FLA_Obj obj)
Definition: FLA_Query.c:123
FLA_Error FLA_Apply_G_rf_blz_var3(int k_G, int m_A, int n_A, dcomplex *buff_G, int rs_G, int cs_G, dcomplex *buff_A, int rs_A, int cs_A, int b_alg)
Definition: FLA_Apply_G_rf_blk_var3.c:186
FLA_Error FLA_Apply_G_rf_bld_var3(int k_G, int m_A, int n_A, dcomplex *buff_G, int rs_G, int cs_G, double *buff_A, int rs_A, int cs_A, int b_alg)
Definition: FLA_Apply_G_rf_blk_var3.c:128
Definition: blis_type_defs.h:132
FLA_Error FLA_Apply_G_rf_blc_var3(int k_G, int m_A, int n_A, scomplex *buff_G, int rs_G, int cs_G, scomplex *buff_A, int rs_A, int cs_A, int b_alg)
Definition: FLA_Apply_G_rf_blk_var3.c:157
int FLA_Datatype
Definition: FLA_type_defs.h:49
dim_t FLA_Obj_col_stride(FLA_Obj obj)
Definition: FLA_Query.c:174
dim_t FLA_Obj_length(FLA_Obj obj)
Definition: FLA_Query.c:116
Definition: blis_type_defs.h:137

◆ FLA_Apply_G_rf_bls_var3()

FLA_Error FLA_Apply_G_rf_bls_var3 ( int  k_G,
int  m_A,
int  n_A,
scomplex buff_G,
int  rs_G,
int  cs_G,
float *  buff_A,
int  rs_A,
int  cs_A,
int  b_alg 
)

References FLA_Apply_G_rf_ops_var3(), and i.

Referenced by FLA_Apply_G_lf_blk_var3(), FLA_Apply_G_rf_blk_var3(), FLA_Bsvd_ext_ops_var1(), and FLA_Bsvd_v_ops_var1().

105 {
106  int i;
107  int b = 0;
108 
109  for ( i = 0; i < m_A; i += b )
110  {
111  float* A1 = buff_A + (0 )*cs_A + (i )*rs_A;
112  int m_ahead = max( 0, m_A - i );
113 
114  b = min( b_alg, m_ahead );
115 
116  // ass_var3 does not support arbitrary strides: TODO
118  //FLA_Apply_G_rf_ass_var3( k_G,
119  b,
120  n_A,
121  buff_G, rs_G, cs_G,
122  A1, rs_A, cs_A );
123  }
124 
125  return FLA_SUCCESS;
126 }
FLA_Error FLA_Apply_G_rf_ops_var3(int k_G, int m_A, int n_A, scomplex *buff_G, int rs_G, int cs_G, float *buff_A, int rs_A, int cs_A)
Definition: FLA_Apply_G_rf_opt_var3.c:112
int i
Definition: bl1_axmyv2.c:145

◆ FLA_Apply_G_rf_blz_var3()

FLA_Error FLA_Apply_G_rf_blz_var3 ( int  k_G,
int  m_A,
int  n_A,
dcomplex buff_G,
int  rs_G,
int  cs_G,
dcomplex buff_A,
int  rs_A,
int  cs_A,
int  b_alg 
)

References FLA_Apply_G_rf_opz_var3(), and i.

Referenced by FLA_Apply_G_lf_blk_var3(), FLA_Apply_G_rf_blk_var3(), FLA_Bsvd_ext_opz_var1(), FLA_Bsvd_v_opz_var1(), and FLA_Tevd_v_opz_var1().

192 {
193  int i;
194  int b = 0;
195 
196  for ( i = 0; i < m_A; i += b )
197  {
198  dcomplex* A1 = buff_A + (0 )*cs_A + (i )*rs_A;
199  int m_ahead = max( 0, m_A - i );
200 
201  b = min( b_alg, m_ahead );
202 
203  // ass_var3 does not support arbitrary strides: TODO
205  //FLA_Apply_G_rf_asz_var3( k_G,
206  b,
207  n_A,
208  buff_G, rs_G, cs_G,
209  A1, rs_A, cs_A );
210  }
211 
212  return FLA_SUCCESS;
213 }
FLA_Error FLA_Apply_G_rf_opz_var3(int k_G, int m_A, int n_A, dcomplex *buff_G, int rs_G, int cs_G, dcomplex *buff_A, int rs_A, int cs_A)
Definition: FLA_Apply_G_rf_opt_var3.c:1471
int i
Definition: bl1_axmyv2.c:145
Definition: blis_type_defs.h:137