function H = powell_hessian(x1, x2, x3, x4)
  %
  % The Hessian of the Powell function. See powell.m for more
  % information.
  %
  H = zeros(4,4);

  H(1,1) = 120*(x1 - x4)^2 + 2;
  H(1,2) = 20;
  H(1,3) = 0;
  H(1,4) = -120*(x1 - x4)^2;

  H(2,1) = H(1,2);
  H(2,2) = 12*(x2 - 2*x3)^2 + 200;
  H(2,3) = -24*(x2 - 2*x3)^2;
  H(2,4) = 0;

  H(3,1) = H(1,3);
  H(3,2) = H(1,3);
  H(3,3) = 48*(x2 - 2*x3)^2 + 10;
  H(3,4) = -10;

  H(4,1) = H(1,4);
  H(4,2) = H(2,4);
  H(4,3) = H(3,4);
  H(4,4) = 120*(x1 - x4)^2 + 10;
end
