After looking this over a bit, and looking at lbfgs, I think the right
interface to minpack's least squares solver is this:
minpack_lsquares(vars, initpt, fcns, [jacobian = matrix], [tolerance =
1d-8])
where vars is a list of the variable names, initpt is the initial guess,
and fcns is a list of the functions.
If jacobian is given, it is assumed to the Jacobian matrix. If jacobian
is true, Maxima will compute the Jacobian from fcns. If jacobian is
false, a difference method will be used to compute the Jacobian.
So, if the Jacobian is given, minpack routine lmder1 is called. Without
a jacobian, lmdif1 is called.
A similar interface could be used for Minpack's hybrd function which
computes the solution of n non-linear equations in n unknowns.
Ray