|
libflame
revision_anchor
|
Functions | |
| FLA_Error | FLA_QR2_UT_opt_var1 (FLA_Obj U, FLA_Obj D, FLA_Obj T) |
| FLA_Error | FLA_QR2_UT_ops_var1 (int m_UT, int m_D, float *buff_U, int rs_U, int cs_U, float *buff_D, int rs_D, int cs_D, float *buff_T, int rs_T, int cs_T) |
| FLA_Error | FLA_QR2_UT_opd_var1 (int m_UT, int m_D, double *buff_U, int rs_U, int cs_U, double *buff_D, int rs_D, int cs_D, double *buff_T, int rs_T, int cs_T) |
| FLA_Error | FLA_QR2_UT_opc_var1 (int m_UT, int m_D, scomplex *buff_U, int rs_U, int cs_U, scomplex *buff_D, int rs_D, int cs_D, scomplex *buff_T, int rs_T, int cs_T) |
| FLA_Error | FLA_QR2_UT_opz_var1 (int m_UT, int m_D, dcomplex *buff_U, int rs_U, int cs_U, dcomplex *buff_D, int rs_D, int cs_D, dcomplex *buff_T, int rs_T, int cs_T) |
| FLA_Error FLA_QR2_UT_opc_var1 | ( | int | m_UT, |
| int | m_D, | ||
| scomplex * | buff_U, | ||
| int | rs_U, | ||
| int | cs_U, | ||
| scomplex * | buff_D, | ||
| int | rs_D, | ||
| int | cs_D, | ||
| scomplex * | buff_T, | ||
| int | rs_T, | ||
| int | cs_T | ||
| ) |
References bli_cgemv(), BLIS_CONJ_TRANSPOSE, BLIS_NO_CONJUGATE, FLA_Apply_H2_UT_l_opc_var1(), FLA_Househ2_UT_l_opc(), FLA_ONE, and FLA_ZERO.
Referenced by FLA_QR2_UT_opt_var1().
{
scomplex* buff_1 = FLA_COMPLEX_PTR( FLA_ONE );
scomplex* buff_0 = FLA_COMPLEX_PTR( FLA_ZERO );
int i;
for ( i = 0; i < m_UT; ++i )
{
scomplex* upsilon11 = buff_U + (i )*cs_U + (i )*rs_U;
scomplex* u12t = buff_U + (i+1)*cs_U + (i )*rs_U;
scomplex* D0 = buff_D + (0 )*cs_D + (0 )*rs_D;
scomplex* d1 = buff_D + (i )*cs_D + (0 )*rs_D;
scomplex* D2 = buff_D + (i+1)*cs_D + (0 )*rs_D;
scomplex* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
scomplex* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
int mn_ahead = m_UT - i - 1;
int mn_behind = i;
//------------------------------------------------------------//
// FLA_Househ2_UT( FLA_LEFT,
// upsilon11,
// d1, tau11 );
FLA_Househ2_UT_l_opc( m_D,
upsilon11,
d1, rs_D,
tau11 );
// FLA_Apply_H2_UT( FLA_LEFT, tau11, d1, u12t,
// D2 );
FLA_Apply_H2_UT_l_opc_var1( m_D,
mn_ahead,
tau11,
d1, rs_D,
u12t, cs_U,
D2, rs_D, cs_D );
// FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, D0, d1, FLA_ZERO, t01 );
bli_cgemv( BLIS_CONJ_TRANSPOSE,
BLIS_NO_CONJUGATE,
m_D,
mn_behind,
buff_1,
D0, rs_D, cs_D,
d1, rs_D,
buff_0,
t01, rs_T );
//------------------------------------------------------------//
}
return FLA_SUCCESS;
}
| FLA_Error FLA_QR2_UT_opd_var1 | ( | int | m_UT, |
| int | m_D, | ||
| double * | buff_U, | ||
| int | rs_U, | ||
| int | cs_U, | ||
| double * | buff_D, | ||
| int | rs_D, | ||
| int | cs_D, | ||
| double * | buff_T, | ||
| int | rs_T, | ||
| int | cs_T | ||
| ) |
References bli_dgemv(), BLIS_CONJ_TRANSPOSE, BLIS_NO_CONJUGATE, FLA_Apply_H2_UT_l_opd_var1(), FLA_Househ2_UT_l_opd(), FLA_ONE, and FLA_ZERO.
Referenced by FLA_QR2_UT_opt_var1().
{
double* buff_1 = FLA_DOUBLE_PTR( FLA_ONE );
double* buff_0 = FLA_DOUBLE_PTR( FLA_ZERO );
int i;
for ( i = 0; i < m_UT; ++i )
{
double* upsilon11 = buff_U + (i )*cs_U + (i )*rs_U;
double* u12t = buff_U + (i+1)*cs_U + (i )*rs_U;
double* D0 = buff_D + (0 )*cs_D + (0 )*rs_D;
double* d1 = buff_D + (i )*cs_D + (0 )*rs_D;
double* D2 = buff_D + (i+1)*cs_D + (0 )*rs_D;
double* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
double* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
int mn_ahead = m_UT - i - 1;
int mn_behind = i;
//------------------------------------------------------------//
// FLA_Househ2_UT( FLA_LEFT,
// upsilon11,
// d1, tau11 );
FLA_Househ2_UT_l_opd( m_D,
upsilon11,
d1, rs_D,
tau11 );
// FLA_Apply_H2_UT( FLA_LEFT, tau11, d1, u12t,
// D2 );
FLA_Apply_H2_UT_l_opd_var1( m_D,
mn_ahead,
tau11,
d1, rs_D,
u12t, cs_U,
D2, rs_D, cs_D );
// FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, D0, d1, FLA_ZERO, t01 );
bli_dgemv( BLIS_CONJ_TRANSPOSE,
BLIS_NO_CONJUGATE,
m_D,
mn_behind,
buff_1,
D0, rs_D, cs_D,
d1, rs_D,
buff_0,
t01, rs_T );
//------------------------------------------------------------//
}
return FLA_SUCCESS;
}
| FLA_Error FLA_QR2_UT_ops_var1 | ( | int | m_UT, |
| int | m_D, | ||
| float * | buff_U, | ||
| int | rs_U, | ||
| int | cs_U, | ||
| float * | buff_D, | ||
| int | rs_D, | ||
| int | cs_D, | ||
| float * | buff_T, | ||
| int | rs_T, | ||
| int | cs_T | ||
| ) |
References bli_sgemv(), BLIS_CONJ_TRANSPOSE, BLIS_NO_CONJUGATE, FLA_Apply_H2_UT_l_ops_var1(), FLA_Househ2_UT_l_ops(), FLA_ONE, and FLA_ZERO.
Referenced by FLA_QR2_UT_opt_var1().
{
float* buff_1 = FLA_FLOAT_PTR( FLA_ONE );
float* buff_0 = FLA_FLOAT_PTR( FLA_ZERO );
int i;
for ( i = 0; i < m_UT; ++i )
{
float* upsilon11 = buff_U + (i )*cs_U + (i )*rs_U;
float* u12t = buff_U + (i+1)*cs_U + (i )*rs_U;
float* D0 = buff_D + (0 )*cs_D + (0 )*rs_D;
float* d1 = buff_D + (i )*cs_D + (0 )*rs_D;
float* D2 = buff_D + (i+1)*cs_D + (0 )*rs_D;
float* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
float* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
int mn_ahead = m_UT - i - 1;
int mn_behind = i;
//------------------------------------------------------------//
// FLA_Househ2_UT( FLA_LEFT,
// upsilon11,
// d1, tau11 );
FLA_Househ2_UT_l_ops( m_D,
upsilon11,
d1, rs_D,
tau11 );
// FLA_Apply_H2_UT( FLA_LEFT, tau11, d1, u12t,
// D2 );
FLA_Apply_H2_UT_l_ops_var1( m_D,
mn_ahead,
tau11,
d1, rs_D,
u12t, cs_U,
D2, rs_D, cs_D );
// FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, D0, d1, FLA_ZERO, t01 );
bli_sgemv( BLIS_CONJ_TRANSPOSE,
BLIS_NO_CONJUGATE,
m_D,
mn_behind,
buff_1,
D0, rs_D, cs_D,
d1, rs_D,
buff_0,
t01, rs_T );
//------------------------------------------------------------//
}
return FLA_SUCCESS;
}
| FLA_Error FLA_QR2_UT_opt_var1 | ( | FLA_Obj | U, |
| FLA_Obj | D, | ||
| FLA_Obj | T | ||
| ) |
References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), FLA_Obj_row_stride(), FLA_QR2_UT_opc_var1(), FLA_QR2_UT_opd_var1(), FLA_QR2_UT_ops_var1(), and FLA_QR2_UT_opz_var1().
Referenced by FLA_QR2_UT_internal().
{
FLA_Datatype datatype;
int m_UT, m_D;
int rs_U, cs_U;
int rs_D, cs_D;
int rs_T, cs_T;
datatype = FLA_Obj_datatype( U );
m_UT = FLA_Obj_length( U );
m_D = FLA_Obj_length( D );
rs_U = FLA_Obj_row_stride( U );
cs_U = FLA_Obj_col_stride( U );
rs_D = FLA_Obj_row_stride( D );
cs_D = FLA_Obj_col_stride( D );
rs_T = FLA_Obj_row_stride( T );
cs_T = FLA_Obj_col_stride( T );
switch ( datatype )
{
case FLA_FLOAT:
{
float* buff_U = FLA_FLOAT_PTR( U );
float* buff_D = FLA_FLOAT_PTR( D );
float* buff_T = FLA_FLOAT_PTR( T );
FLA_QR2_UT_ops_var1( m_UT,
m_D,
buff_U, rs_U, cs_U,
buff_D, rs_D, cs_D,
buff_T, rs_T, cs_T );
break;
}
case FLA_DOUBLE:
{
double* buff_U = FLA_DOUBLE_PTR( U );
double* buff_D = FLA_DOUBLE_PTR( D );
double* buff_T = FLA_DOUBLE_PTR( T );
FLA_QR2_UT_opd_var1( m_UT,
m_D,
buff_U, rs_U, cs_U,
buff_D, rs_D, cs_D,
buff_T, rs_T, cs_T );
break;
}
case FLA_COMPLEX:
{
scomplex* buff_U = FLA_COMPLEX_PTR( U );
scomplex* buff_D = FLA_COMPLEX_PTR( D );
scomplex* buff_T = FLA_COMPLEX_PTR( T );
FLA_QR2_UT_opc_var1( m_UT,
m_D,
buff_U, rs_U, cs_U,
buff_D, rs_D, cs_D,
buff_T, rs_T, cs_T );
break;
}
case FLA_DOUBLE_COMPLEX:
{
dcomplex* buff_U = FLA_DOUBLE_COMPLEX_PTR( U );
dcomplex* buff_D = FLA_DOUBLE_COMPLEX_PTR( D );
dcomplex* buff_T = FLA_DOUBLE_COMPLEX_PTR( T );
FLA_QR2_UT_opz_var1( m_UT,
m_D,
buff_U, rs_U, cs_U,
buff_D, rs_D, cs_D,
buff_T, rs_T, cs_T );
break;
}
}
return FLA_SUCCESS;
}
| FLA_Error FLA_QR2_UT_opz_var1 | ( | int | m_UT, |
| int | m_D, | ||
| dcomplex * | buff_U, | ||
| int | rs_U, | ||
| int | cs_U, | ||
| dcomplex * | buff_D, | ||
| int | rs_D, | ||
| int | cs_D, | ||
| dcomplex * | buff_T, | ||
| int | rs_T, | ||
| int | cs_T | ||
| ) |
References bli_zgemv(), BLIS_CONJ_TRANSPOSE, BLIS_NO_CONJUGATE, FLA_Apply_H2_UT_l_opz_var1(), FLA_Househ2_UT_l_opz(), FLA_ONE, and FLA_ZERO.
Referenced by FLA_QR2_UT_opt_var1().
{
dcomplex* buff_1 = FLA_DOUBLE_COMPLEX_PTR( FLA_ONE );
dcomplex* buff_0 = FLA_DOUBLE_COMPLEX_PTR( FLA_ZERO );
int i;
for ( i = 0; i < m_UT; ++i )
{
dcomplex* upsilon11 = buff_U + (i )*cs_U + (i )*rs_U;
dcomplex* u12t = buff_U + (i+1)*cs_U + (i )*rs_U;
dcomplex* D0 = buff_D + (0 )*cs_D + (0 )*rs_D;
dcomplex* d1 = buff_D + (i )*cs_D + (0 )*rs_D;
dcomplex* D2 = buff_D + (i+1)*cs_D + (0 )*rs_D;
dcomplex* tau11 = buff_T + (i )*cs_T + (i )*rs_T;
dcomplex* t01 = buff_T + (i )*cs_T + (0 )*rs_T;
int mn_ahead = m_UT - i - 1;
int mn_behind = i;
//------------------------------------------------------------//
// FLA_Househ2_UT( FLA_LEFT,
// upsilon11,
// d1, tau11 );
FLA_Househ2_UT_l_opz( m_D,
upsilon11,
d1, rs_D,
tau11 );
// FLA_Apply_H2_UT( FLA_LEFT, tau11, d1, u12t,
// D2 );
FLA_Apply_H2_UT_l_opz_var1( m_D,
mn_ahead,
tau11,
d1, rs_D,
u12t, cs_U,
D2, rs_D, cs_D );
// FLA_Gemv_external( FLA_CONJ_TRANSPOSE, FLA_ONE, D0, d1, FLA_ZERO, t01 );
bli_zgemv( BLIS_CONJ_TRANSPOSE,
BLIS_NO_CONJUGATE,
m_D,
mn_behind,
buff_1,
D0, rs_D, cs_D,
d1, rs_D,
buff_0,
t01, rs_T );
//------------------------------------------------------------//
}
return FLA_SUCCESS;
}
1.7.6.1