#include "../gmx_blas.h"

void 
F77_FUNC(dscal,DSCAL)(int  *    n__,
                      double *   fact__,
                      double *   dx,
                      int    *   incx__)
{
    int nincx,i;

    int n = *n__;
    double fact = *fact__;
    int incx = *incx__;
    
    if(n<=0 || incx<=0)
        return;
    
    if(incx==1) {
        /* Unrool factor 5 */
        for(i=0;i<(n-5);i+=5) {
            dx[i]   *= fact;
            dx[i+1] *= fact;
            dx[i+2] *= fact;
            dx[i+3] *= fact;
            dx[i+4] *= fact;
        }    
        /* continue with current value of i */
        for(;i<n;i++)
            dx[i]   *= fact;
        
        return;
    } else {
        /* inc != 1 */
        nincx = n * (incx);
        for (i=0;i<nincx;i+=incx)
            dx[i] *= fact;
        
        return;
    } 
    
}
