internal static void setulb(int n,
int m,
double[] x, int _x_offset,
double[] l, int _l_offset,
double[] u, int _u_offset,
int[] nbd, int _nbd_offset,
ref double f,
double[] g, int _g_offset,
double factr,
double pgtol,
double[] wa, int _wa_offset,
int[] iwa, int _iwa_offset,
ref string task,
int iprint,
ref string csave,
bool[] lsave, int _lsave_offset,
int[] isave, int _isave_offset,
double[] dsave, int _dsave_offset)
{
int lws = 0;
int lr = 0;
int lz = 0;
int lt = 0;
int ld = 0;
int lxp = 0;
int lwa = 0;
int lwy = 0;
int lsy = 0;
int lss = 0;
int lwt = 0;
int lwn = 0;
int lsnd = 0;
if ((task.StartsWith("START", StringComparison.OrdinalIgnoreCase)))
{
isave[(1 - (1)) + _isave_offset] = (m * n);
isave[(2 - (1)) + _isave_offset] = ((int)System.Math.Pow(m, 2));
isave[(3 - (1)) + _isave_offset] = (4 * ((int)System.Math.Pow(m, 2)));
isave[(4 - (1)) + _isave_offset] = 1;
isave[(5 - (1)) + _isave_offset] = (isave[(4 - (1)) + _isave_offset] + isave[(1 - (1)) + _isave_offset]);
isave[(6 - (1)) + _isave_offset] = (isave[(5 - (1)) + _isave_offset] + isave[(1 - (1)) + _isave_offset]);
isave[(7 - (1)) + _isave_offset] = (isave[(6 - (1)) + _isave_offset] + isave[(2 - (1)) + _isave_offset]);
isave[(8 - (1)) + _isave_offset] = (isave[(7 - (1)) + _isave_offset] + isave[(2 - (1)) + _isave_offset]);
isave[(9 - (1)) + _isave_offset] = (isave[(8 - (1)) + _isave_offset] + isave[(2 - (1)) + _isave_offset]);
isave[(10 - (1)) + _isave_offset] = (isave[(9 - (1)) + _isave_offset] + isave[(3 - (1)) + _isave_offset]);
isave[(11 - (1)) + _isave_offset] = (isave[(10 - (1)) + _isave_offset] + isave[(3 - (1)) + _isave_offset]);
isave[(12 - (1)) + _isave_offset] = (isave[(11 - (1)) + _isave_offset] + n);
isave[(13 - (1)) + _isave_offset] = (isave[(12 - (1)) + _isave_offset] + n);
isave[(14 - (1)) + _isave_offset] = (isave[(13 - (1)) + _isave_offset] + n);
isave[(15 - (1)) + _isave_offset] = (isave[(14 - (1)) + _isave_offset] + n);
isave[(16 - (1)) + _isave_offset] = (isave[(15 - (1)) + _isave_offset] + n);
}
lws = isave[(4 - (1)) + _isave_offset];
lwy = isave[(5 - (1)) + _isave_offset];
lsy = isave[(6 - (1)) + _isave_offset];
lss = isave[(7 - (1)) + _isave_offset];
lwt = isave[(8 - (1)) + _isave_offset];
lwn = isave[(9 - (1)) + _isave_offset];
lsnd = isave[(10 - (1)) + _isave_offset];
lz = isave[(11 - (1)) + _isave_offset];
lr = isave[(12 - (1)) + _isave_offset];
ld = isave[(13 - (1)) + _isave_offset];
lt = isave[(14 - (1)) + _isave_offset];
lxp = isave[(15 - (1)) + _isave_offset];
lwa = isave[(16 - (1)) + _isave_offset];
//
mainlb(n, m, x, _x_offset, l, _l_offset, u, _u_offset, nbd,
_nbd_offset, ref f, g, _g_offset, factr, pgtol, wa, (lws - (1)) + _wa_offset,
wa, (lwy - (1)) + _wa_offset, wa, (lsy - (1)) + _wa_offset, wa,
(lss - (1)) + _wa_offset, wa, (lwt - (1)) + _wa_offset, wa,
(lwn - (1)) + _wa_offset, wa, (lsnd - (1)) + _wa_offset, wa,
(lz - (1)) + _wa_offset, wa, (lr - (1)) + _wa_offset, wa,
(ld - (1)) + _wa_offset, wa, (lt - (1)) + _wa_offset, wa,
(lxp - (1)) + _wa_offset, wa, (lwa - (1)) + _wa_offset, iwa,
(1 - (1)) + _iwa_offset, iwa, ((n + 1) - (1)) + _iwa_offset,
iwa, (((2 * n) + 1) - (1)) + _iwa_offset, ref task, iprint, ref csave,
lsave, _lsave_offset, isave, (22 - (1)) + _isave_offset, dsave,
_dsave_offset);
}