libflame
12600
|
Functions | |
FLA_Error | FLA_Absolute_square (FLA_Obj alpha) |
FLA_Error FLA_Absolute_square | ( | FLA_Obj | alpha | ) |
References FLA_Absolute_square_check(), FLA_Check_error_level(), FLA_Obj_datatype(), scomplex::imag, dcomplex::imag, scomplex::real, and dcomplex::real.
Referenced by FLA_Ttmm_l_unb_var1(), FLA_Ttmm_l_unb_var2(), FLA_Ttmm_l_unb_var3(), FLA_Ttmm_u_unb_var1(), FLA_Ttmm_u_unb_var2(), and FLA_Ttmm_u_unb_var3().
{ FLA_Datatype datatype; if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) FLA_Absolute_square_check( alpha ); datatype = FLA_Obj_datatype( alpha ); switch ( datatype ){ case FLA_FLOAT: { float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha ); *buff_alpha = (*buff_alpha) * (*buff_alpha); break; } case FLA_DOUBLE: { double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha ); *buff_alpha = (*buff_alpha) * (*buff_alpha); break; } case FLA_COMPLEX: { scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha ); buff_alpha->real = buff_alpha->real * buff_alpha->real + buff_alpha->imag * buff_alpha->imag; buff_alpha->imag = 0.0F; break; } case FLA_DOUBLE_COMPLEX: { dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha ); buff_alpha->real = buff_alpha->real * buff_alpha->real + buff_alpha->imag * buff_alpha->imag; buff_alpha->imag = 0.0; break; } } return FLA_SUCCESS; }