libflame revision_anchor
Functions
bli_dot.c File Reference

(r)

Functions

void bli_sdot (char conj, int n, float *x, int incx, float *y, int incy, float *rho)
void bli_ddot (char conj, int n, double *x, int incx, double *y, int incy, double *rho)
void bli_cdot (char conj, int n, scomplex *x, int incx, scomplex *y, int incy, scomplex *rho)
void bli_zdot (char conj, int n, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *rho)
void bli_cdot_in (char conj, int n, scomplex *x, int incx, scomplex *y, int incy, scomplex *rho)
void bli_zdot_in (char conj, int n, dcomplex *x, int incx, dcomplex *y, int incy, dcomplex *rho)

Function Documentation

void bli_cdot ( char  conj,
int  n,
scomplex x,
int  incx,
scomplex y,
int  incy,
scomplex rho 
)
void bli_cdot_in ( char  conj,
int  n,
scomplex x,
int  incx,
scomplex y,
int  incy,
scomplex rho 
)

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

Referenced by bli_cdot().

{
    scomplex* xip;
    scomplex* yip;
    scomplex  xi;
    scomplex  yi;
    scomplex  rho_temp;
    int       i;

    rho_temp.real = 0.0F;
    rho_temp.imag = 0.0F;
        
    xip = x;
    yip = y;
        
    if ( bli_does_conj( conj ) )
    {
        for ( i = 0; i < n; ++i )
        {
            xi.real = xip->real;
            xi.imag = xip->imag;
            yi.real = yip->real;
            yi.imag = yip->imag;
            
            rho_temp.real += xi.real * yi.real - -xi.imag * yi.imag;
            rho_temp.imag += xi.real * yi.imag + -xi.imag * yi.real;

            xip += incx;
            yip += incy;
        }
    }
    else // if ( !bli_does_conj( conj ) )
    {
        for ( i = 0; i < n; ++i )
        {
            xi.real = xip->real;
            xi.imag = xip->imag;
            yi.real = yip->real;
            yi.imag = yip->imag;
            
            rho_temp.real += xi.real * yi.real - xi.imag * yi.imag;
            rho_temp.imag += xi.real * yi.imag + xi.imag * yi.real;

            xip += incx;
            yip += incy;
        }
    }
    
    rho->real = rho_temp.real;
    rho->imag = rho_temp.imag;
}
void bli_ddot ( char  conj,
int  n,
double *  x,
int  incx,
double *  y,
int  incy,
double *  rho 
)
void bli_sdot ( char  conj,
int  n,
float *  x,
int  incx,
float *  y,
int  incy,
float *  rho 
)
void bli_zdot ( char  conj,
int  n,
dcomplex x,
int  incx,
dcomplex y,
int  incy,
dcomplex rho 
)
void bli_zdot_in ( char  conj,
int  n,
dcomplex x,
int  incx,
dcomplex y,
int  incy,
dcomplex rho 
)

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

Referenced by bli_zdot().

{
    dcomplex* xip;
    dcomplex* yip;
    dcomplex  xi;
    dcomplex  yi;
    dcomplex  rho_temp;
    int       i;

    rho_temp.real = 0.0;
    rho_temp.imag = 0.0;
        
    xip = x;
    yip = y;
        
    if ( bli_does_conj( conj ) )
    {
        for ( i = 0; i < n; ++i )
        {
            xi.real = xip->real;
            xi.imag = xip->imag;
            yi.real = yip->real;
            yi.imag = yip->imag;
            
            rho_temp.real += xi.real * yi.real - -xi.imag * yi.imag;
            rho_temp.imag += xi.real * yi.imag + -xi.imag * yi.real;

            xip += incx;
            yip += incy;
        }
    }
    else // if ( !bli_does_conj( conj ) )
    {
        for ( i = 0; i < n; ++i )
        {
            xi.real = xip->real;
            xi.imag = xip->imag;
            yi.real = yip->real;
            yi.imag = yip->imag;
            
            rho_temp.real += xi.real * yi.real - xi.imag * yi.imag;
            rho_temp.imag += xi.real * yi.imag + xi.imag * yi.real;

            xip += incx;
            yip += incy;
        }
    }
    
    rho->real = rho_temp.real;
    rho->imag = rho_temp.imag;
}