Functions | |
FLA_Error | FLA_Invert (FLA_Obj alpha) |
void FLA_F2C() | fla_invert_f (F_INT *alpha, F_INT *IERROR) |
References FLA_Check_error_level(), FLA_Invert_check(), FLA_Obj_datatype(), dcomplex::imag, scomplex::imag, dcomplex::real, and scomplex::real.
Referenced by fla_invert_f(), FLA_Trinv_l_unb_var1(), FLA_Trinv_l_unb_var2(), FLA_Trinv_l_unb_var3(), FLA_Trinv_l_unb_var4(), FLA_Trinv_u_unb_var1(), FLA_Trinv_u_unb_var2(), FLA_Trinv_u_unb_var3(), and FLA_Trinv_u_unb_var4().
00036 { 00037 FLA_Datatype datatype; 00038 00039 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00040 FLA_Invert_check( alpha ); 00041 00042 datatype = FLA_Obj_datatype( alpha ); 00043 00044 switch ( datatype ){ 00045 00046 case FLA_FLOAT: 00047 { 00048 float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha ); 00049 00050 *buff_alpha = 1.0F / *buff_alpha; 00051 00052 break; 00053 } 00054 00055 case FLA_DOUBLE: 00056 { 00057 double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha ); 00058 00059 *buff_alpha = 1.0 / *buff_alpha; 00060 00061 break; 00062 } 00063 00064 case FLA_COMPLEX: 00065 { 00066 scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha ); 00067 float temp; 00068 00069 temp = 1.0F / ( buff_alpha->real * buff_alpha->real + 00070 buff_alpha->imag * buff_alpha->imag ); 00071 00072 buff_alpha->real = buff_alpha->real * temp; 00073 buff_alpha->imag = buff_alpha->imag * -temp; 00074 00075 break; 00076 } 00077 00078 case FLA_DOUBLE_COMPLEX: 00079 { 00080 dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha ); 00081 double temp; 00082 00083 temp = 1.0 / ( buff_alpha->real * buff_alpha->real + 00084 buff_alpha->imag * buff_alpha->imag ); 00085 00086 buff_alpha->real = buff_alpha->real * temp; 00087 buff_alpha->imag = buff_alpha->imag * -temp; 00088 00089 break; 00090 } 00091 00092 } 00093 00094 return FLA_SUCCESS; 00095 }
void FLA_F2C() fla_invert_f | ( | F_INT * | alpha, | |
F_INT * | IERROR | |||
) |