L-BFGS-B  3.0
Large-scale Bound-constrained Optimization
bmv.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine bmv (m, sy, wt, col, v, p)
 This subroutine computes the product of the 2m x 2m middle matrix in the compact L-BFGS formula of B and a 2m vector v. More...
 

Function/Subroutine Documentation

◆ bmv()

subroutine bmv ( integer  m,
double precision, dimension(m, m)  sy,
double precision, dimension(m, m)  wt,
integer  col,
double precision, dimension(2*col)  v,
double precision, dimension(2*col)  p 
)

This subroutine computes the product of the 2m x 2m middle matrix in the compact L-BFGS formula of B and a 2m vector v; it returns the product in p.

Parameters
mOn entry m is the maximum number of variable metric corrections used to define the limited memory matrix.
On exit m is unchanged.
syOn entry sy specifies the matrix S'Y.
On exit sy is unchanged.
wtOn entry wt specifies the upper triangular matrix J' which is the Cholesky factor of (thetaS'S+LD^(-1)L').
On exit wt is unchanged.
colOn entry col specifies the number of s-vectors (or y-vectors) stored in the compact L-BFGS formula.
On exit col is unchanged.
vOn entry v specifies vector v.
On exit v is unchanged.
pOn entry p is unspecified.
On exit p is the product Mv.

Historical note: this routine used to take an info output parameter for the LINPACK dtrsl triangular-solve return status. Since LAPACK's dtrsm replacement cannot fail on a non-singular triangular factor (and formt ensures wt is non-singular), the parameter was always 0 on exit and has been removed.

Definition at line 36 of file bmv.f.

Referenced by cauchy(), and cmprlb().

Here is the caller graph for this function: