libflame revision_anchor
Functions
bli_invertv.c File Reference

(r)

Functions

void bli_sinvertv (char conj, int n, float *x, int incx)
void bli_dinvertv (char conj, int n, double *x, int incx)
void bli_cinvertv (char conj, int n, scomplex *x, int incx)
void bli_zinvertv (char conj, int n, dcomplex *x, int incx)

Function Documentation

void bli_cinvertv ( char  conj,
int  n,
scomplex x,
int  incx 
)

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

Referenced by FLA_Invert().

{
    float     one = 1.0F;
    float     temp;
    float     conjsign;
    scomplex* chi;
    int       i;

    if ( bli_does_conj( conj ) ) conjsign =  one;
    else                         conjsign = -one;

    for ( i = 0; i < n; ++i )
    {
        chi = x + i*incx;

        temp = one / ( chi->real * chi->real +
                       chi->imag * chi->imag );
        chi->real = chi->real *            temp;
        chi->imag = chi->imag * conjsign * temp;
    }
}
void bli_dinvertv ( char  conj,
int  n,
double *  x,
int  incx 
)

Referenced by FLA_Invert().

{
    double  one = 1.0;
    double* chi;
    int     i;

    for ( i = 0; i < n; ++i )
    {
        chi = x + i*incx;

        *chi = one / *chi;
    }
}
void bli_sinvertv ( char  conj,
int  n,
float *  x,
int  incx 
)

Referenced by FLA_Invert().

{
    float  one = 1.0F;
    float* chi;
    int    i;

    for ( i = 0; i < n; ++i )
    {
        chi = x + i*incx;

        *chi = one / *chi;
    }
}
void bli_zinvertv ( char  conj,
int  n,
dcomplex x,
int  incx 
)

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

Referenced by FLA_Invert().

{
    double    one = 1.0;
    double    temp;
    double    conjsign;
    dcomplex* chi;
    int       i;

    if ( bli_does_conj( conj ) ) conjsign =  one;
    else                         conjsign = -one;

    for ( i = 0; i < n; ++i )
    {
        chi = x + i*incx;

        temp = one / ( chi->real * chi->real +
                       chi->imag * chi->imag );
        chi->real = chi->real *            temp;
        chi->imag = chi->imag * conjsign * temp;
    }
}