Auxiliary for use as a delegate parameter

Syntax

C#
public static void e04udm(
	ref int mode,
	int ncnln,
	int n,
	int[] needc,
	double[] x,
	double[] c,
	double[,] cjac,
	int nstate
)
Visual Basic
Public Shared Sub e04udm ( _
	ByRef mode As Integer, _
	ncnln As Integer, _
	n As Integer, _
	needc As Integer(), _
	x As Double(), _
	c As Double(), _
	cjac As Double(,), _
	nstate As Integer _
)
Visual C++
public:
static void e04udm(
	int% mode, 
	int ncnln, 
	int n, 
	array<int>^ needc, 
	array<double>^ x, 
	array<double>^ c, 
	array<double,2>^ cjac, 
	int nstate
)
F#
static member e04udm : 
        mode : int byref * 
        ncnln : int * 
        n : int * 
        needc : int[] * 
        x : float[] * 
        c : float[] * 
        cjac : float[,] * 
        nstate : int -> unit 

Parameters

mode
Type: System..::..Int32%
On entry: indicates which values must be assigned during each call of _confun. Only the following values need be assigned, for each value of i such that needc[i-1]>0:
mode=0
c[i-1].
mode=1
All available elements in the ith row of cjac.
mode=2
c[i-1] and all available elements in the ith row of cjac.
On exit: may be set to a negative value if you wish to terminate the solution to the current problem. In this case e04ud will terminate with _ifail set to mode.
ncnln
Type: System..::..Int32
On entry: nN, the number of nonlinear constraints.
n
Type: System..::..Int32
On entry: n, the number of variables.
needc
Type: array<System..::..Int32>[]()[][]
An array of size [ncnln]
On entry: the indices of the elements of c and/or cjac that must be evaluated by _confun. If needc[i-1]>0, the ith element of c and/or the available elements of the ith row of cjac (see parameter mode) must be evaluated at x.
x
Type: array<System..::..Double>[]()[][]
An array of size [n]
On entry: x, the vector of variables at which the constraint functions and/or the available elements of the constraint Jacobian are to be evaluated.
c
Type: array<System..::..Double>[]()[][]
An array of size [ncnln]
On exit: if needc[i-1]>0 and mode=0 or 2, c[i-1] must contain the value of the ith constraint at x. The remaining elements of c, corresponding to the non-positive elements of needc, are ignored.
cjac
Type: array<System..::..Double,2>[,](,)[,][,]
An array of size [dim1, n]
Note: dim1 must satisfy the constraint:
On entry: unless optparam_derivativelevel=2 or 3, the elements of cjac are set to special values which enable e04ud to detect whether they are changed by _confun.
On exit: if needc[i-1]>0 and mode=1 or 2, the ith row of cjac must contain the available elements of the vector ci given by
ci=cix1,cix2,,cixnT,
where cixj is the partial derivative of the ith constraint with respect to the jth variable, evaluated at the point x. See also the parameter confun_nstate. The remaining rows of cjac, corresponding to non-positive elements of needc, are ignored.
If all elements of the constraint Jacobian are known (i.e., optparam_derivativelevel=2 or 3), any constant elements may be assigned to cjac one time only at the start of the optimization. An element of cjac that is not subsequently assigned in _confun will retain its initial value throughout. Constant elements may be loaded into cjac either before the call to e04ud or during the first call to _confun (signalled by the value confun_nstate=1). The ability to preload constants is useful when many Jacobian elements are identically zero, in which case cjac may be initialized to zero and nonzero elements may be reset by _confun.
Note that constant nonzero elements do affect the values of the constraints. Thus, if cjac[i-1,j-1] is set to a constant value, it need not be reset in subsequent calls to _confun, but the value cjac[i-1,j-1]×x[j-1] must nonetheless be added to c[i-1]. For example, if cjac[0,0]=2 and cjac[0,1]=-5 then the term 2×x[0]-5×x[1] must be included in the definition of c[0].
It must be emphasized that, if optparam_derivativelevel=0 or 1, unassigned elements of cjac are not treated as constant; they are estimated by finite differences, at nontrivial expense. If you do not supply a value for the optional parameter optparam_differenceinterval, an interval for each element of x is computed automatically at the start of the optimization. The automatic procedure can usually identify constant elements of cjac, which are then computed once only by finite differences.
nstate
Type: System..::..Int32
On entry: if nstate=1 then e04ud is calling _confun for the first time. This parameter setting allows you to save computation time if certain data must be read or calculated only once.

Description

Auxiliary for use as a delegate parameter

References

None.

Error Indicators and Warnings

None.

Accuracy

Not applicable.

Further Comments

None.

Example

None.

See Also