Sha256: 1600dee968017f0106726fd0d7575ba1f1b22ac358e8c29047543fa04e69e275

Contents?: true

Size: 1.24 KB

Versions: 15

Compression:

Stored size: 1.24 KB

Contents

#include "blas.h"

#ifdef __cplusplus
extern "C" {
#endif

double ddot_(int *n, double *sx, int *incx, double *sy, int *incy)
{
  long int i, m, nn, iincx, iincy;
  double stemp;
  long int ix, iy;

  /* forms the dot product of two vectors.
     uses unrolled loops for increments equal to one.
     jack dongarra, linpack, 3/11/78.
     modified 12/3/93, array(1) declarations changed to array(*) */

  /* Dereference inputs */
  nn = *n;
  iincx = *incx;
  iincy = *incy;

  stemp = 0.0;
  if (nn > 0)
  {
    if (iincx == 1 && iincy == 1) /* code for both increments equal to 1 */
    {
      m = nn-4;
      for (i = 0; i < m; i += 5)
        stemp += sx[i] * sy[i] + sx[i+1] * sy[i+1] + sx[i+2] * sy[i+2] +
                 sx[i+3] * sy[i+3] + sx[i+4] * sy[i+4];

      for ( ; i < nn; i++)        /* clean-up loop */
        stemp += sx[i] * sy[i];
    }
    else /* code for unequal increments or equal increments not equal to 1 */
    {
      ix = 0;
      iy = 0;
      if (iincx < 0)
        ix = (1 - nn) * iincx;
      if (iincy < 0)
        iy = (1 - nn) * iincy;
      for (i = 0; i < nn; i++)
      {
        stemp += sx[ix] * sy[iy];
        ix += iincx;
        iy += iincy;
      }
    }
  }

  return stemp;
} /* ddot_ */

#ifdef __cplusplus
}
#endif

Version data entries

15 entries across 15 versions & 2 rubygems

Version Path
numo-liblinear-2.3.0 ext/numo/liblinear/src/blas/ddot.c
numo-liblinear-2.2.1 ext/numo/liblinear/src/blas/ddot.c
numo-liblinear-2.2.0 ext/numo/liblinear/src/blas/ddot.c
numo-liblinear-2.1.1 ext/numo/liblinear/src/blas/ddot.c
numo-liblinear-2.1.0 ext/numo/liblinear/src/blas/ddot.c
numo-liblinear-2.0.0 ext/numo/liblinear/src/blas/ddot.c
numo-liblinear-1.2.2 ext/numo/liblinear/liblinear/blas/ddot.c
numo-liblinear-1.2.1 ext/numo/liblinear/liblinear/blas/ddot.c
numo-liblinear-1.2.0 ext/numo/liblinear/liblinear/blas/ddot.c
numo-liblinear-1.1.2 ext/numo/liblinear/liblinear/blas/ddot.c
numo-liblinear-1.1.1 ext/numo/liblinear/liblinear/blas/ddot.c
numo-liblinear-1.1.0 ext/numo/liblinear/liblinear/blas/ddot.c
numo-liblinear-1.0.0 ext/numo/liblinear/liblinear/blas/ddot.c
liblinear-ruby-1.0.3 ext/ddot.c
liblinear-ruby-1.0.2 ext/ddot.c