hessian method

List<List<double>> hessian (List<double> params)

Returns H = 2 * Jt•J

Implementation

List<List<double>> hessian(List<double> params) {
  List<List<double>> jac = jacobian(params);
  List<List<double>> jacTrans = numeric.transpose(jac);
  List<List<double>> hes = numeric.dotCM(2.0, numeric.dotMM(jacTrans, jac));

  //fixed parameters should have a zero in the hessian
  // dim = numeric.dim(hes);
  // for (var i=0; i<dim[0]; i++) {
  //   if (free[i] === 0) {
  //     hes[i][i] = 0.0;
  //   }
  // }
  return hes;
}