Sha256: 09b386c6aa01c81db8b44db164f7bbb66f6326e992a65a53d8cd8a2e4735259e
Contents?: true
Size: 1.07 KB
Versions: 15
Compression:
Stored size: 1.07 KB
Contents
#include "blas.h" #ifdef __cplusplus extern "C" { #endif int dscal_(int *n, double *sa, double *sx, int *incx) { long int i, m, nincx, nn, iincx; double ssa; /* scales a vector by a constant. uses unrolled loops for increment equal to 1. jack dongarra, linpack, 3/11/78. modified 3/93 to return if incx .le. 0. modified 12/3/93, array(1) declarations changed to array(*) */ /* Dereference inputs */ nn = *n; iincx = *incx; ssa = *sa; if (nn > 0 && iincx > 0) { if (iincx == 1) /* code for increment equal to 1 */ { m = nn-4; for (i = 0; i < m; i += 5) { sx[i] = ssa * sx[i]; sx[i+1] = ssa * sx[i+1]; sx[i+2] = ssa * sx[i+2]; sx[i+3] = ssa * sx[i+3]; sx[i+4] = ssa * sx[i+4]; } for ( ; i < nn; ++i) /* clean-up loop */ sx[i] = ssa * sx[i]; } else /* code for increment not equal to 1 */ { nincx = nn * iincx; for (i = 0; i < nincx; i += iincx) sx[i] = ssa * sx[i]; } } return 0; } /* dscal_ */ #ifdef __cplusplus } #endif
Version data entries
15 entries across 15 versions & 2 rubygems