Purpose
To compute (J'*J + c*I)*x, where J is an m-by-n real matrix, c is a real scalar, I is the n-by-n identity matrix, and x is a real n-vector. NOTE: this routine must have the same arguments as SLICOT Library routine NF01BW.Specification
SUBROUTINE NF01BX( N, IPAR, LIPAR, DPAR, LDPAR, J, LDJ, X, INCX, $ DWORK, LDWORK, INFO ) C .. Scalar Arguments .. INTEGER INCX, INFO, LDJ, LDPAR, LDWORK, LIPAR, N C .. Array Arguments .. INTEGER IPAR(*) DOUBLE PRECISION DPAR(*), DWORK(*), J(LDJ,*), X(*)Arguments
Input/Output Parameters
N (input) INTEGER The number of columns of the Jacobian matrix J. N >= 0. IPAR (input) INTEGER array, dimension (LIPAR) The integer parameters describing the structure of the matrix J, as follows: IPAR(1) must contain the number of rows M of the Jacobian matrix J. M >= 0. IPAR is provided for compatibility with SLICOT Library routine MD03AD. LIPAR (input) INTEGER The length of the array IPAR. LIPAR >= 1. DPAR (input) DOUBLE PRECISION array, dimension (LDPAR) The real parameters needed for solving the problem. The entry DPAR(1) must contain the real scalar c. LDPAR (input) INTEGER The length of the array DPAR. LDPAR >= 1. J (input) DOUBLE PRECISION array, dimension (LDJ,N) The leading M-by-N part of this array must contain the Jacobian matrix J. LDJ INTEGER The leading dimension of the array J. LDJ >= MAX(1,M). X (input/output) DOUBLE PRECISION array, dimension (1+(N-1)*abs(INCX)) On entry, this incremented array must contain the vector x. On exit, this incremented array contains the value of the matrix-vector product (J'*J + c*I)*x. INCX (input) INTEGER The increment for the elements of X. INCX <> 0.Workspace
DWORK DOUBLE PRECISION array, dimension (LDWORK) LDWORK INTEGER The length of the array DWORK. LDWORK >= M.Error Indicator
INFO INTEGER = 0: successful exit; < 0: if INFO = -i, the i-th argument had an illegal value.Method
The associativity of matrix multiplications is used; the result is obtained as: x_out = J'*( J*x ) + c*x.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None