Accord.Math.Optimization.BoundedBroydenFletcherGoldfarbShanno.dcopy C# (CSharp) Method

dcopy() private static method

private static dcopy ( int n, double dx, int _dx_offset, int incx, double dy, int _dy_offset, int incy ) : void
n int
dx double
_dx_offset int
incx int
dy double
_dy_offset int
incy int
return void
        private static void dcopy(int n, double[] dx, int _dx_offset, int incx,
           double[] dy, int _dy_offset, int incy)
        {

            int i = 0;
            int ix = 0;
            int iy = 0;
            int m = 0;
            int mp1 = 0;
            if ((n <= 0))
            {
                return;
            }

            if (((incx == 1) && (incy == 1)))
            {
                goto L20;
            }
            // c
            // c        code for unequal increments or equal increments
            // c          not equal to 1
            // c
            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++)
                {
                    dy[(iy - (1)) + _dy_offset] = dx[(ix - (1)) + _dx_offset];
                    ix = (ix + incx);
                    iy = (iy + incy);
                }
            }
            return;
        // c
        // c        code for both increments equal to 1
        // c
        // c
        // c        clean-up loop
        // c
        L20:
            m = (n) % (7);
            if ((m == 0))
            {
                goto L40;
            }
            {
                for (i = 1; i <= m; i++)
                {
                    dy[(i - (1)) + _dy_offset] = dx[(i - (1)) + _dx_offset];
                }
            }
            if ((n < 7))
            {
                return;
            }

        L40:
            mp1 = (m + 1);
            {
                int _i_inc = 7;
                for (i = mp1; i <= n; i += _i_inc)
                {
                    dy[(i - (1)) + _dy_offset] = dx[(i - (1)) + _dx_offset];
                    dy[((i + 1) - (1)) + _dy_offset] = dx[((i + 1) - (1)) + _dx_offset];
                    dy[((i + 2) - (1)) + _dy_offset] = dx[((i + 2) - (1)) + _dx_offset];
                    dy[((i + 3) - (1)) + _dy_offset] = dx[((i + 3) - (1)) + _dx_offset];
                    dy[((i + 4) - (1)) + _dy_offset] = dx[((i + 4) - (1)) + _dx_offset];
                    dy[((i + 5) - (1)) + _dy_offset] = dx[((i + 5) - (1)) + _dx_offset];
                    dy[((i + 6) - (1)) + _dy_offset] = dx[((i + 6) - (1)) + _dx_offset];
                }
            }
        }