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

dscal() private static method

private static dscal ( int n, double da, double dx, int _dx_offset, int incx ) : void
n int
da double
dx double
_dx_offset int
incx int
return void
        private static void dscal(int n, double da, double[] dx, int _dx_offset, int incx)
        {

            int i = 0;
            int m = 0;
            int mp1 = 0;
            int nincx = 0;

            if (((n <= 0) || (incx <= 0)))
            {
                return;
            }

            if ((incx == 1))
            {
                goto L20;
            }

            // *
            // *        code for increment not equal to 1
            // *
            nincx = (n * incx);
            {
                int _i_inc = incx;
                for (i = 1; (_i_inc < 0) ? i >= nincx : i <= nincx; i += _i_inc)
                {
                    dx[(i - (1)) + _dx_offset] = (da * dx[(i - (1)) + _dx_offset]);
                }
            }
            return;
        // *
        // *        code for increment equal to 1
        // *
        // *
        // *        clean-up loop
        // *
        L20:
            m = (n) % (5);

            if ((m == 0))
            {
                goto L40;
            }
            {
                for (i = 1; i <= m; i++)
                {
                    dx[(i - (1)) + _dx_offset] = (da * dx[(i - (1)) + _dx_offset]);
                }
            }

            if ((n < 5))
            {
                return;
            }

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

            return;
        }