libflame  12600
Functions
bl1_inverts.c File Reference

(r12600)

Functions

void bl1_sinverts (conj1_t conj, float *alpha)
void bl1_dinverts (conj1_t conj, double *alpha)
void bl1_cinverts (conj1_t conj, scomplex *alpha)
void bl1_zinverts (conj1_t conj, dcomplex *alpha)

Function Documentation

void bl1_cinverts ( conj1_t  conj,
scomplex alpha 
)

References bl1_is_conj(), scomplex::imag, and scomplex::real.

Referenced by FLA_Trinv_ln_opc_var1(), FLA_Trinv_ln_opc_var2(), FLA_Trinv_ln_opc_var3(), FLA_Trinv_ln_opc_var4(), FLA_Trinv_un_opc_var1(), FLA_Trinv_un_opc_var2(), FLA_Trinv_un_opc_var3(), and FLA_Trinv_un_opc_var4().

{
    float  temp;
    float  s, xr_s, xi_s;

    s           = bl1_fmaxabs( alpha->real, alpha->imag ); \
    xr_s        = alpha->real / s;
    xi_s        = alpha->imag / s;
    temp        = xr_s * alpha->real + xi_s * alpha->imag;

    alpha->real =  xr_s / temp;
    alpha->imag = -xi_s / temp;

    if ( bl1_is_conj( conj ) )
        bl1_cconjs( alpha );
}
void bl1_dinverts ( conj1_t  conj,
double *  alpha 
)
void bl1_sinverts ( conj1_t  conj,
float *  alpha 
)
void bl1_zinverts ( conj1_t  conj,
dcomplex alpha 
)

References bl1_is_conj(), dcomplex::imag, and dcomplex::real.

Referenced by FLA_Trinv_ln_opz_var1(), FLA_Trinv_ln_opz_var2(), FLA_Trinv_ln_opz_var3(), FLA_Trinv_ln_opz_var4(), FLA_Trinv_un_opz_var1(), FLA_Trinv_un_opz_var2(), FLA_Trinv_un_opz_var3(), and FLA_Trinv_un_opz_var4().

{
    double temp;
    double s, xr_s, xi_s;

    s           = bl1_fmaxabs( alpha->real, alpha->imag ); \
    xr_s        = alpha->real / s;
    xi_s        = alpha->imag / s;
    temp        = xr_s * alpha->real + xi_s * alpha->imag;

    alpha->real =  xr_s / temp;
    alpha->imag = -xi_s / temp;

    if ( bl1_is_conj( conj ) )
        bl1_zconjs( alpha );
}