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

cmprlb() private static method

private static cmprlb ( int n, int m, double x, int _x_offset, double g, int _g_offset, double ws, int _ws_offset, double wy, int _wy_offset, double sy, int _sy_offset, double wt, int _wt_offset, double z, int _z_offset, double r, int _r_offset, double wa, int _wa_offset, int index, int _index_offset, double theta, int col, int head, int nfree, bool cnstnd, int &info ) : void
n int
m int
x double
_x_offset int
g double
_g_offset int
ws double
_ws_offset int
wy double
_wy_offset int
sy double
_sy_offset int
wt double
_wt_offset int
z double
_z_offset int
r double
_r_offset int
wa double
_wa_offset int
index int
_index_offset int
theta double
col int
head int
nfree int
cnstnd bool
info int
return void
        private static void cmprlb(int n, int m, double[] x, int _x_offset, double[] g, int _g_offset, double[] ws, int _ws_offset, double[] wy, int _wy_offset, double[] sy, int _sy_offset,
        double[] wt, int _wt_offset, double[] z, int _z_offset, double[] r, int _r_offset,
        double[] wa, int _wa_offset, int[] index, int _index_offset, double theta,
        int col, int head, int nfree, bool cnstnd, ref int info)
        {

            int i = 0;
            int j = 0;
            int k = 0;
            int pointr = 0;
            double a1 = 0.0d;
            double a2 = 0.0d;

            if (((!cnstnd) && (col > 0)))
            {
                {
                    for (i = 1; i <= n; i++)
                    {
                        r[(i - (1)) + _r_offset] = (-(g[(i - (1)) + _g_offset]));
                    }
                }
            }
            else
            {
                {
                    for (i = 1; i <= nfree; i++)
                    {
                        k = index[(i - (1)) + _index_offset];
                        r[(i - (1)) + _r_offset] = ((-((theta * ((z[(k - (1))
                            + _z_offset] - x[(k - (1)) + _x_offset]))))) - g[(k - (1)) + _g_offset]);
                    }
                }

                bmv(m, sy, _sy_offset, wt, _wt_offset, col, wa,
                    (((2 * m) + 1) - (1)) + _wa_offset, wa, (1 - (1)) + _wa_offset, ref info);

                if ((info != 0))
                {
                    info = -8;
                    return;
                }

                pointr = head;

                {
                    for (j = 1; j <= col; j++)
                    {
                        a1 = wa[(j - (1)) + _wa_offset];
                        a2 = (theta * wa[((col + j) - (1)) + _wa_offset]);
                        {
                            for (i = 1; i <= nfree; i++)
                            {
                                k = index[(i - (1)) + _index_offset];
                                r[(i - (1)) + _r_offset] = ((r[(i - (1)) + _r_offset]
                                    + (wy[(k - (1)) + (pointr - (1)) * (n) + _wy_offset] * a1))
                                    + (ws[(k - (1)) + (pointr - (1)) * (n) + _ws_offset] * a2));
                            }
                        }

                        pointr = ((pointr) % (m) + 1);
                    }
                }
            }
        }