f2edde8eaa253165a491b9354f0e5097785230bc
[platform/upstream/lapack.git] / BLAS / SRC / csscal.f
1 *> \brief \b CSSCAL
2 *
3 *  =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at 
6 *            http://www.netlib.org/lapack/explore-html/ 
7 *
8 *  Definition:
9 *  ===========
10 *
11 *       SUBROUTINE CSSCAL(N,SA,CX,INCX)
12
13 *       .. Scalar Arguments ..
14 *       REAL SA
15 *       INTEGER INCX,N
16 *       ..
17 *       .. Array Arguments ..
18 *       COMPLEX CX(*)
19 *       ..
20 *  
21 *
22 *> \par Purpose:
23 *  =============
24 *>
25 *> \verbatim
26 *>
27 *>    CSSCAL scales a complex vector by a real constant.
28 *> \endverbatim
29 *
30 *  Authors:
31 *  ========
32 *
33 *> \author Univ. of Tennessee 
34 *> \author Univ. of California Berkeley 
35 *> \author Univ. of Colorado Denver 
36 *> \author NAG Ltd. 
37 *
38 *> \date November 2011
39 *
40 *> \ingroup complex_blas_level1
41 *
42 *> \par Further Details:
43 *  =====================
44 *>
45 *> \verbatim
46 *>
47 *>     jack dongarra, linpack, 3/11/78.
48 *>     modified 3/93 to return if incx .le. 0.
49 *>     modified 12/3/93, array(1) declarations changed to array(*)
50 *> \endverbatim
51 *>
52 *  =====================================================================
53       SUBROUTINE CSSCAL(N,SA,CX,INCX)
54 *
55 *  -- Reference BLAS level1 routine (version 3.4.0) --
56 *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
57 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
58 *     November 2011
59 *
60 *     .. Scalar Arguments ..
61       REAL SA
62       INTEGER INCX,N
63 *     ..
64 *     .. Array Arguments ..
65       COMPLEX CX(*)
66 *     ..
67 *
68 *  =====================================================================
69 *
70 *     .. Local Scalars ..
71       INTEGER I,NINCX
72 *     ..
73 *     .. Intrinsic Functions ..
74       INTRINSIC AIMAG,CMPLX,REAL
75 *     ..
76       IF (N.LE.0 .OR. INCX.LE.0) RETURN
77       IF (INCX.EQ.1) THEN
78 *
79 *        code for increment equal to 1
80 *
81          DO I = 1,N
82             CX(I) = CMPLX(SA*REAL(CX(I)),SA*AIMAG(CX(I)))
83          END DO
84       ELSE
85 *
86 *        code for increment not equal to 1
87 *
88          NINCX = N*INCX
89          DO I = 1,NINCX,INCX
90             CX(I) = CMPLX(SA*REAL(CX(I)),SA*AIMAG(CX(I)))
91          END DO
92       END IF
93       RETURN
94       END