libflame  12600
Functions
bl1_invert2s.c File Reference

(r12600)

Functions

void bl1_sinvert2s (conj1_t conj, float *alpha, float *beta)
void bl1_dinvert2s (conj1_t conj, double *alpha, double *beta)
void bl1_cinvert2s (conj1_t conj, scomplex *alpha, scomplex *beta)
void bl1_zinvert2s (conj1_t conj, dcomplex *alpha, dcomplex *beta)

Function Documentation

void bl1_cinvert2s ( conj1_t  conj,
scomplex alpha,
scomplex beta 
)

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

Referenced by bl1_cinvscalm(), and bl1_cinvscalv().

{
    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;

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

    if ( bl1_is_conj( conj ) )
        bl1_cconjs( beta );
}
void bl1_dinvert2s ( conj1_t  conj,
double *  alpha,
double *  beta 
)

Referenced by bl1_dinvscalm(), and bl1_zdinvscalm().

{
    double one = 1.0;

    *beta = one / *alpha;
}
void bl1_sinvert2s ( conj1_t  conj,
float *  alpha,
float *  beta 
)

Referenced by bl1_csinvscalm(), and bl1_sinvscalm().

{
    float  one = 1.0F;

    *beta = one / *alpha;
}
void bl1_zinvert2s ( conj1_t  conj,
dcomplex alpha,
dcomplex beta 
)

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

Referenced by bl1_zinvscalm(), and bl1_zinvscalv().

{
    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;

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

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