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));
}
}
}