| subroutine csrotf (n,cx,incx,cy,incy,c,s) | |
| c | |
| c applies a plane rotation, where the cos and sin (c and s) are real | |
| c and the vectors cx and cy are complex. | |
| c jack dongarra, linpack, 3/11/78. | |
| c | |
| complex cx(1),cy(1),ctemp | |
| real c,s | |
| integer i,incx,incy,ix,iy,n | |
| c | |
| if(n.le.0)return | |
| if(incx.eq.1.and.incy.eq.1)go to 20 | |
| c | |
| c code for unequal increments or equal increments not equal | |
| c to 1 | |
| c | |
| ix = 1 | |
| iy = 1 | |
| if(incx.lt.0)ix = (-n+1)*incx + 1 | |
| if(incy.lt.0)iy = (-n+1)*incy + 1 | |
| do 10 i = 1,n | |
| ctemp = c*cx(ix) + s*cy(iy) | |
| cy(iy) = c*cy(iy) - s*cx(ix) | |
| cx(ix) = ctemp | |
| ix = ix + incx | |
| iy = iy + incy | |
| 10 continue | |
| return | |
| c | |
| c code for both increments equal to 1 | |
| c | |
| 20 do 30 i = 1,n | |
| ctemp = c*cx(i) + s*cy(i) | |
| cy(i) = c*cy(i) - s*cx(i) | |
| cx(i) = ctemp | |
| 30 continue | |
| return | |
| end |