libflame
revision_anchor
|
Functions | |
FLA_Error | FLA_Bidiag_UT_scale_diagonals (FLA_Obj alpha, FLA_Obj A) |
FLA_Error | FLA_Bidiag_UT_u_scale_diagonals (FLA_Obj alpha, FLA_Obj A) |
FLA_Error | FLA_Bidiag_UT_l_scale_diagonals (FLA_Obj alpha, FLA_Obj A) |
FLA_Error FLA_Bidiag_UT_l_scale_diagonals | ( | FLA_Obj | alpha, |
FLA_Obj | A | ||
) |
References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_length(), and FLA_Obj_row_stride().
Referenced by FLA_Bidiag_UT_scale_diagonals(), and FLA_Tridiag_UT_scale_diagonals().
{ FLA_Datatype datatype; int m_A; int rs_A, cs_A; int i; datatype = FLA_Obj_datatype( A ); m_A = FLA_Obj_length( A ); rs_A = FLA_Obj_row_stride( A ); cs_A = FLA_Obj_col_stride( A ); switch ( datatype ) { case FLA_FLOAT: { float* buff_A = FLA_FLOAT_PTR( A ); float* buff_alpha = FLA_FLOAT_PTR( alpha ); for ( i = 0; i < m_A; ++i ) { float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; float* a21_t = buff_A + (i )*cs_A + (i+1)*rs_A; int m_ahead = m_A - i - 1; bl1_sscals( buff_alpha, alpha11 ); if ( m_ahead > 0 ) bl1_sscals( buff_alpha, a21_t ); } break; } case FLA_DOUBLE: { double* buff_A = FLA_DOUBLE_PTR( A ); double* buff_alpha = FLA_DOUBLE_PTR( alpha ); for ( i = 0; i < m_A; ++i ) { double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; double* a21_t = buff_A + (i )*cs_A + (i+1)*rs_A; int m_ahead = m_A - i - 1; bl1_dscals( buff_alpha, alpha11 ); if ( m_ahead > 0 ) bl1_dscals( buff_alpha, a21_t ); } break; } case FLA_COMPLEX: { scomplex* buff_A = FLA_COMPLEX_PTR( A ); float* buff_alpha = FLA_FLOAT_PTR( alpha ); for ( i = 0; i < m_A; ++i ) { scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; scomplex* a21_t = buff_A + (i )*cs_A + (i+1)*rs_A; int m_ahead = m_A - i - 1; bl1_csscals( buff_alpha, alpha11 ); if ( m_ahead > 0 ) bl1_csscals( buff_alpha, a21_t ); } break; } case FLA_DOUBLE_COMPLEX: { dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A ); double* buff_alpha = FLA_DOUBLE_PTR( alpha ); for ( i = 0; i < m_A; ++i ) { dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; dcomplex* a21_t = buff_A + (i )*cs_A + (i+1)*rs_A; int m_ahead = m_A - i - 1; bl1_zdscals( buff_alpha, alpha11 ); if ( m_ahead > 0 ) bl1_zdscals( buff_alpha, a21_t ); } break; } } return FLA_SUCCESS; }
FLA_Error FLA_Bidiag_UT_scale_diagonals | ( | FLA_Obj | alpha, |
FLA_Obj | A | ||
) |
References FLA_Bidiag_UT_l_scale_diagonals(), FLA_Bidiag_UT_scale_diagonals_check(), FLA_Bidiag_UT_u_scale_diagonals(), FLA_Check_error_level(), FLA_Obj_length(), and FLA_Obj_width().
{ FLA_Error r_val = FLA_SUCCESS; if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) FLA_Bidiag_UT_scale_diagonals_check( alpha, A ); if ( FLA_Obj_length( A ) >= FLA_Obj_width( A ) ) r_val = FLA_Bidiag_UT_u_scale_diagonals( alpha, A ); else r_val = FLA_Bidiag_UT_l_scale_diagonals( alpha, A ); return r_val; }
FLA_Error FLA_Bidiag_UT_u_scale_diagonals | ( | FLA_Obj | alpha, |
FLA_Obj | A | ||
) |
References FLA_Obj_col_stride(), FLA_Obj_datatype(), FLA_Obj_row_stride(), and FLA_Obj_width().
Referenced by FLA_Bidiag_UT_scale_diagonals(), and FLA_Tridiag_UT_scale_diagonals().
{ FLA_Datatype datatype; int n_A; int rs_A, cs_A; int i; datatype = FLA_Obj_datatype( A ); n_A = FLA_Obj_width( A ); rs_A = FLA_Obj_row_stride( A ); cs_A = FLA_Obj_col_stride( A ); switch ( datatype ) { case FLA_FLOAT: { float* buff_A = FLA_FLOAT_PTR( A ); float* buff_alpha = FLA_FLOAT_PTR( alpha ); for ( i = 0; i < n_A; ++i ) { float* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; float* a12t_l = buff_A + (i+1)*cs_A + (i )*rs_A; int n_ahead = n_A - i - 1; bl1_sscals( buff_alpha, alpha11 ); if ( n_ahead > 0 ) bl1_sscals( buff_alpha, a12t_l ); } break; } case FLA_DOUBLE: { double* buff_A = FLA_DOUBLE_PTR( A ); double* buff_alpha = FLA_DOUBLE_PTR( alpha ); for ( i = 0; i < n_A; ++i ) { double* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; double* a12t_l = buff_A + (i+1)*cs_A + (i )*rs_A; int n_ahead = n_A - i - 1; bl1_dscals( buff_alpha, alpha11 ); if ( n_ahead > 0 ) bl1_dscals( buff_alpha, a12t_l ); } break; } case FLA_COMPLEX: { scomplex* buff_A = FLA_COMPLEX_PTR( A ); float* buff_alpha = FLA_FLOAT_PTR( alpha ); for ( i = 0; i < n_A; ++i ) { scomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; scomplex* a12t_l = buff_A + (i+1)*cs_A + (i )*rs_A; int n_ahead = n_A - i - 1; bl1_csscals( buff_alpha, alpha11 ); if ( n_ahead > 0 ) bl1_csscals( buff_alpha, a12t_l ); } break; } case FLA_DOUBLE_COMPLEX: { dcomplex* buff_A = FLA_DOUBLE_COMPLEX_PTR( A ); double* buff_alpha = FLA_DOUBLE_PTR( alpha ); for ( i = 0; i < n_A; ++i ) { dcomplex* alpha11 = buff_A + (i )*cs_A + (i )*rs_A; dcomplex* a12t_l = buff_A + (i+1)*cs_A + (i )*rs_A; int n_ahead = n_A - i - 1; bl1_zdscals( buff_alpha, alpha11 ); if ( n_ahead > 0 ) bl1_zdscals( buff_alpha, a12t_l ); } break; } } return FLA_SUCCESS; }