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

projgr() static private method

static private projgr ( int n, double l, int _l_offset, double u, int _u_offset, int nbd, int _nbd_offset, double x, int _x_offset, double g, int _g_offset, double &sbgnrm ) : void
n int
l double
_l_offset int
u double
_u_offset int
nbd int
_nbd_offset int
x double
_x_offset int
g double
_g_offset int
sbgnrm double
return void
        internal static void projgr(int n,
        double[] l, int _l_offset,
        double[] u, int _u_offset,
        int[] nbd, int _nbd_offset,
        double[] x, int _x_offset,
        double[] g, int _g_offset,
        ref double sbgnrm)
        {

            int i = 0;
            double gi = 0.0d;
            sbgnrm = 0.0;
            {
                for (i = 1; i <= n; i++)
                {
                    gi = g[(i - (1)) + _g_offset];
                    if ((nbd[(i - (1)) + _nbd_offset] != 0))
                    {
                        if ((gi < 0.0))
                        {
                            if ((nbd[(i - (1)) + _nbd_offset] >= 2))
                            {
                                gi = System.Math.Max(((x[(i - (1)) + _x_offset] - u[(i - (1)) + _u_offset])), gi);
                            }
                        }
                        else
                        {
                            if ((nbd[(i - (1)) + _nbd_offset] <= 2))
                            {
                                gi = System.Math.Min(((x[(i - (1)) + _x_offset] - l[(i - (1)) + _l_offset])), gi);
                            }
                        }
                    }
                    sbgnrm = System.Math.Max(sbgnrm, System.Math.Abs(gi));
                }
            }
        }