ae173420ba622a73a22253c689601fa3f342a96f
[alexxy/gromacs.git] / src / gmxlib / gmx_blas / srot.c
1 #include "gmx_blas.h"
2
3 void
4 F77_FUNC(srot,SROT)(int *n__,
5                     float *dx,
6                     int *incx__,
7                     float *dy,
8                     int *incy__,
9                     float *c__,
10                     float *s__)
11 {
12   int i,ix,iy;
13   float dtemp;
14
15   int n = *n__;
16   int incx = *incx__;
17   int incy = *incy__;
18   float c = *c__;
19   float s = *s__;
20   
21   if(incx!=1 || incy!=1) {
22     ix = 0;
23     iy = 0;
24     if(incx<0)
25       ix = (1-n)*(incx);
26     if(incy<0)
27       iy = (1-n)*(incy);
28     
29     for(i=0;i<n;i++,ix+=incx,iy+=incy) {
30       dtemp  = (c) * dx[ix] + (s) * dy[iy];
31       dy[iy] = (c) * dy[iy] - (s) * dx[ix];
32       dx[ix] = dtemp;
33     }
34
35     return;
36
37   } else {
38
39     /* unit increments */   
40     for(i=0;i<n;i++) {
41       dtemp = (c) * dx[i] + (s) * dy[i];
42       dy[i] = (c) * dy[i] - (s) * dx[i];
43       dx[i] = dtemp;      
44     }
45
46   }
47 }