CSGRSH − CUTEr tool to evaluate constraints gradients, sparse Lagrangian Hessian and the gradient of either the objective/Lagrangian in sparse format. |
CALL CSGRSH( N, M, X, GRLAGF, LV, V, NNZJ, LCJAC, CJAC, INDVAR, INDFUN, NNZH, LH, H, IRNH, ICNH ) |
The CSGRSH subroutine evaluates the gradients of the general constraints, the Hessian matrix of the Lagrangian function and the gradient of either the objective function or the Lagrangian corresponding to the problem decoded into OUTSDIF.d at the point X, in the constrained programming case. The data is stored in sparse format. By convention, the signs of the Lagrange multipliers V are set so the Lagrangian function can be written as L(X, V) = f(X) + < c(X), V >. |
The arguments of CSGRSH are as follows |
N [in] - integer |
the number of variables for the problem, |
M [in] - integer |
the total number of general constraints, |
X [in] - real/double precision |
an array which gives the current estimate of the solution of the problem, |
GRLAGF [in] - logical |
a logical variable which should be set .TRUE. if the gradient of the Lagrangian function is required and .FALSE. if the gradient of the objective function is sought, |
LV [in] - integer |
the actual declared dimension of V, |
V [in] - real/double precision |
an array which should give the Lagrange multipliers whenever GRLAGF is set .TRUE. but need not otherwise be set, |
NNZJ [out] - integer |
the number of nonzeros in CJAC, |
CJAC [out] - real/double precision |
an array which gives the values of the nonzeros of the gradients of the objective, or Lagrangian, and general constraint functions evaluated at X and V. The i-th entry of CJAC gives the value of the derivative with respect to variable INDVAR(i) of function INDFUN(i), |
INDVAR [out] - integer |
an array whose i-th component is the index of the variable with respect to which CJAC(i) is the derivative, |
INDFUN [out] - integer |
an array whose i-th component is the index of the problem function whose value CJAC(i) is the derivative. INDFUN(i) = 0 indicates the objective function whenever GRLAGF is .FALSE. or the Lagrangian function when GRLAGF is .TRUE., while INDFUN(i) = j > 0 indicates the j-th general constraint function, |
NNZH [out] - integer |
the number of nonzeros in H, |
LH [in] - integer |
the actual declared dimensions of H, IRNH and ICNH, |
H [out] - real/double precision |
an array which gives the value of the Hessian matrix of the Lagrangian function evaluated at X and V. The i-th entry of H gives the value of the nonzero in row IRNH(i) and column ICNH(i). Only the upper triangular part of the Hessian is stored, |
IRNH [out] - integer |
an array which gives the row indices of the nonzeros of the Hessian matrix of the Lagrangian function evaluated at X and V, |
ICNH [out] - integer |
an array which gives the column indices of the nonzeros of the Hessian matrix of the Lagrangian function evaluated at X and V. |
Calling this routine is more efficient than separate calls to CSGR and CSH. |
I. Bongartz, A.R. Conn, N.I.M. Gould, D. Orban and Ph.L. Toint |
CUTEr (and SifDec): A Constrained and Unconstrained Testing Environment, revisited, N.I.M. Gould, D. Orban and Ph.L. Toint, ACM TOMS, 29:4, pp.373-394, 2003. CUTE: Constrained and Unconstrained Testing Environment, I. Bongartz, A.R. Conn, N.I.M. Gould and Ph.L. Toint, TOMS, 21:1, pp.123-160, 1995. cgr(3M). |