annotate ext/cblas/src/dscal.c @ 209:ccd2019190bf msvc

Some MSVC fixes, including (temporarily, probably) renaming the FFT source file to avoid getting it mixed up with the Vamp SDK one in our object dir
author Chris Cannam
date Thu, 01 Feb 2018 16:34:08 +0000
parents 45330e0d2819
children
rev   line source
Chris@202 1 /* dscal.f -- translated by f2c (version 20061008).
Chris@202 2 You must link the resulting object file with libf2c:
Chris@202 3 on Microsoft Windows system, link with libf2c.lib;
Chris@202 4 on Linux or Unix systems, link with .../path/to/libf2c.a -lm
Chris@202 5 or, if you install libf2c.a in a standard place, with -lf2c -lm
Chris@202 6 -- in that order, at the end of the command line, as in
Chris@202 7 cc *.o -lf2c -lm
Chris@202 8 Source for libf2c is in /netlib/f2c/libf2c.zip, e.g.,
Chris@202 9
Chris@202 10 http://www.netlib.org/f2c/libf2c.zip
Chris@202 11 */
Chris@202 12
Chris@202 13 #include "f2c.h"
Chris@202 14 #include "blaswrap.h"
Chris@202 15
Chris@202 16 /* Subroutine */ int dscal_(integer *n, doublereal *da, doublereal *dx,
Chris@202 17 integer *incx)
Chris@202 18 {
Chris@202 19 /* System generated locals */
Chris@202 20 integer i__1, i__2;
Chris@202 21
Chris@202 22 /* Local variables */
Chris@202 23 integer i__, m, mp1, nincx;
Chris@202 24
Chris@202 25 /* .. Scalar Arguments .. */
Chris@202 26 /* .. */
Chris@202 27 /* .. Array Arguments .. */
Chris@202 28 /* .. */
Chris@202 29
Chris@202 30 /* Purpose */
Chris@202 31 /* ======= */
Chris@202 32 /* * */
Chris@202 33 /* scales a vector by a constant. */
Chris@202 34 /* uses unrolled loops for increment equal to one. */
Chris@202 35 /* jack dongarra, linpack, 3/11/78. */
Chris@202 36 /* modified 3/93 to return if incx .le. 0. */
Chris@202 37 /* modified 12/3/93, array(1) declarations changed to array(*) */
Chris@202 38
Chris@202 39
Chris@202 40 /* .. Local Scalars .. */
Chris@202 41 /* .. */
Chris@202 42 /* .. Intrinsic Functions .. */
Chris@202 43 /* .. */
Chris@202 44 /* Parameter adjustments */
Chris@202 45 --dx;
Chris@202 46
Chris@202 47 /* Function Body */
Chris@202 48 if (*n <= 0 || *incx <= 0) {
Chris@202 49 return 0;
Chris@202 50 }
Chris@202 51 if (*incx == 1) {
Chris@202 52 goto L20;
Chris@202 53 }
Chris@202 54
Chris@202 55 /* code for increment not equal to 1 */
Chris@202 56
Chris@202 57 nincx = *n * *incx;
Chris@202 58 i__1 = nincx;
Chris@202 59 i__2 = *incx;
Chris@202 60 for (i__ = 1; i__2 < 0 ? i__ >= i__1 : i__ <= i__1; i__ += i__2) {
Chris@202 61 dx[i__] = *da * dx[i__];
Chris@202 62 /* L10: */
Chris@202 63 }
Chris@202 64 return 0;
Chris@202 65
Chris@202 66 /* code for increment equal to 1 */
Chris@202 67
Chris@202 68
Chris@202 69 /* clean-up loop */
Chris@202 70
Chris@202 71 L20:
Chris@202 72 m = *n % 5;
Chris@202 73 if (m == 0) {
Chris@202 74 goto L40;
Chris@202 75 }
Chris@202 76 i__2 = m;
Chris@202 77 for (i__ = 1; i__ <= i__2; ++i__) {
Chris@202 78 dx[i__] = *da * dx[i__];
Chris@202 79 /* L30: */
Chris@202 80 }
Chris@202 81 if (*n < 5) {
Chris@202 82 return 0;
Chris@202 83 }
Chris@202 84 L40:
Chris@202 85 mp1 = m + 1;
Chris@202 86 i__2 = *n;
Chris@202 87 for (i__ = mp1; i__ <= i__2; i__ += 5) {
Chris@202 88 dx[i__] = *da * dx[i__];
Chris@202 89 dx[i__ + 1] = *da * dx[i__ + 1];
Chris@202 90 dx[i__ + 2] = *da * dx[i__ + 2];
Chris@202 91 dx[i__ + 3] = *da * dx[i__ + 3];
Chris@202 92 dx[i__ + 4] = *da * dx[i__ + 4];
Chris@202 93 /* L50: */
Chris@202 94 }
Chris@202 95 return 0;
Chris@202 96 } /* dscal_ */