dlartv.c
Go to the documentation of this file.
00001 /* dlartv.f -- translated by f2c (version 20061008).
00002    You must link the resulting object file with libf2c:
00003         on Microsoft Windows system, link with libf2c.lib;
00004         on Linux or Unix systems, link with .../path/to/libf2c.a -lm
00005         or, if you install libf2c.a in a standard place, with -lf2c -lm
00006         -- in that order, at the end of the command line, as in
00007                 cc *.o -lf2c -lm
00008         Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
00009 
00010                 http://www.netlib.org/f2c/libf2c.zip
00011 */
00012 
00013 #include "f2c.h"
00014 #include "blaswrap.h"
00015 
00016 /* Subroutine */ int dlartv_(integer *n, doublereal *x, integer *incx, 
00017         doublereal *y, integer *incy, doublereal *c__, doublereal *s, integer 
00018         *incc)
00019 {
00020     /* System generated locals */
00021     integer i__1;
00022 
00023     /* Local variables */
00024     integer i__, ic, ix, iy;
00025     doublereal xi, yi;
00026 
00027 
00028 /*  -- LAPACK auxiliary routine (version 3.2) -- */
00029 /*     Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */
00030 /*     November 2006 */
00031 
00032 /*     .. Scalar Arguments .. */
00033 /*     .. */
00034 /*     .. Array Arguments .. */
00035 /*     .. */
00036 
00037 /*  Purpose */
00038 /*  ======= */
00039 
00040 /*  DLARTV applies a vector of real plane rotations to elements of the */
00041 /*  real vectors x and y. For i = 1,2,...,n */
00042 
00043 /*     ( x(i) ) := (  c(i)  s(i) ) ( x(i) ) */
00044 /*     ( y(i) )    ( -s(i)  c(i) ) ( y(i) ) */
00045 
00046 /*  Arguments */
00047 /*  ========= */
00048 
00049 /*  N       (input) INTEGER */
00050 /*          The number of plane rotations to be applied. */
00051 
00052 /*  X       (input/output) DOUBLE PRECISION array, */
00053 /*                         dimension (1+(N-1)*INCX) */
00054 /*          The vector x. */
00055 
00056 /*  INCX    (input) INTEGER */
00057 /*          The increment between elements of X. INCX > 0. */
00058 
00059 /*  Y       (input/output) DOUBLE PRECISION array, */
00060 /*                         dimension (1+(N-1)*INCY) */
00061 /*          The vector y. */
00062 
00063 /*  INCY    (input) INTEGER */
00064 /*          The increment between elements of Y. INCY > 0. */
00065 
00066 /*  C       (input) DOUBLE PRECISION array, dimension (1+(N-1)*INCC) */
00067 /*          The cosines of the plane rotations. */
00068 
00069 /*  S       (input) DOUBLE PRECISION array, dimension (1+(N-1)*INCC) */
00070 /*          The sines of the plane rotations. */
00071 
00072 /*  INCC    (input) INTEGER */
00073 /*          The increment between elements of C and S. INCC > 0. */
00074 
00075 /*  ===================================================================== */
00076 
00077 /*     .. Local Scalars .. */
00078 /*     .. */
00079 /*     .. Executable Statements .. */
00080 
00081     /* Parameter adjustments */
00082     --s;
00083     --c__;
00084     --y;
00085     --x;
00086 
00087     /* Function Body */
00088     ix = 1;
00089     iy = 1;
00090     ic = 1;
00091     i__1 = *n;
00092     for (i__ = 1; i__ <= i__1; ++i__) {
00093         xi = x[ix];
00094         yi = y[iy];
00095         x[ix] = c__[ic] * xi + s[ic] * yi;
00096         y[iy] = c__[ic] * yi - s[ic] * xi;
00097         ix += *incx;
00098         iy += *incy;
00099         ic += *incc;
00100 /* L10: */
00101     }
00102     return 0;
00103 
00104 /*     End of DLARTV */
00105 
00106 } /* dlartv_ */


swiftnav
Author(s):
autogenerated on Sat Jun 8 2019 18:55:46