private static double ddot(int n, double[] dx, int _dx_offset,
int incx, double[] dy, int _dy_offset, int incy)
{
double dtemp = 0.0d;
int i = 0;
int ix = 0;
int iy = 0;
int m = 0;
int mp1 = 0;
double ddot = 0.0d;
ddot = 0.0e0;
dtemp = 0.0e0;
if ((n <= 0))
{
return ddot;
}
if (((incx == 1) && (incy == 1)))
{
goto L20;
}
// *
// * code for unequal increments or equal increments
// * not equal to 1
// *
ix = 1;
iy = 1;
if ((incx < 0))
{
ix = (((((-(n)) + 1)) * incx) + 1);
}
if ((incy < 0))
{
iy = (((((-(n)) + 1)) * incy) + 1);
}
{
for (i = 1; i <= n; i++)
{
dtemp = (dtemp + (dx[(ix - (1)) + _dx_offset] * dy[(iy - (1)) + _dy_offset]));
ix = (ix + incx);
iy = (iy + incy);
}
}
ddot = dtemp;
return ddot;
// *
// * code for both increments equal to 1
// *
// *
// * clean-up loop
// *
L20:
m = (n) % (5);
if ((m == 0))
{
goto L40;
}
{
for (i = 1; i <= m; i++)
{
dtemp = (dtemp + (dx[(i - (1)) + _dx_offset] * dy[(i - (1)) + _dy_offset]));
}
}
if ((n < 5))
{
goto L60;
}
L40:
mp1 = (m + 1);
{
int _i_inc = 5;
for (i = mp1; i <= n; i += _i_inc)
{
dtemp = (((((dtemp + (dx[(i - (1)) + _dx_offset] * dy[(i - (1))
+ _dy_offset])) + (dx[((i + 1) - (1)) + _dx_offset] * dy[((i + 1) - (1))
+ _dy_offset])) + (dx[((i + 2) - (1)) + _dx_offset] * dy[((i + 2) - (1))
+ _dy_offset])) + (dx[((i + 3) - (1)) + _dx_offset] * dy[((i + 3) - (1))
+ _dy_offset])) + (dx[((i + 4) - (1)) + _dx_offset] * dy[((i + 4) - (1)) + _dy_offset]));
}
}
L60:
ddot = dtemp;
return ddot;
}