function h = p00_h ( problem, n, x )

%*****************************************************************************80
%
%% p00_h() evaluates the Hessian for any problem.
%
%  Discussion:
%
%    H(I,J) = d2 F(X) / dX(I)dX(J)
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    16 October 2011
%
%  Author:
%
%    John Burkardt
%
%  Input:
%
%    integer PROBLEM, the problem number.
%
%    integer N, the number of variables.
%
%    real X(N), the values of the variables.
%
%  Output:
%
%    real H(N,N), the Hessian matrix.
%
  if ( problem == 1 )
    h = p01_h ( n, x );
  elseif ( problem == 2 )
    h = p02_h ( n, x );
  elseif ( problem == 3 )
    h = p03_h ( n, x );
  elseif ( problem == 4 )
    h = p04_h ( n, x );
  elseif ( problem == 5 )
    h = p05_h ( n, x );
  elseif ( problem == 6 )
    h = p06_h ( n, x );
  elseif ( problem == 7 )
    h = p07_h ( n, x );
  elseif ( problem == 8 )
    h = p08_h ( n, x );
  elseif ( problem == 9 )
    h = p09_h ( n, x );
  elseif ( problem == 10 )
    h = p10_h ( n, x );
  elseif ( problem == 11 )
    h = p11_h ( n, x );
  elseif ( problem == 12 )
    h = p12_h ( n, x );
  elseif ( problem == 13 )
    h = p13_h ( n, x );
  elseif ( problem == 14 )
    h = p14_h ( n, x );
  elseif ( problem == 15 )
    h = p15_h ( n, x );
  elseif ( problem == 16 )
    h = p16_h ( n, x );
  elseif ( problem == 17 )
    h = p17_h ( n, x );
  elseif ( problem == 18 )
    h = p18_h ( n, x );
  elseif ( problem == 19 )
    h = p19_h ( n, x );
  elseif ( problem == 20 )
    h = p20_h ( n, x );
  elseif ( problem == 21 )
    h = p21_h ( n, x );
  elseif ( problem == 22 )
    h = p22_h ( n, x );
  elseif ( problem == 23 )
    h = p23_h ( n, x );
  elseif ( problem == 24 )
    h = p24_h ( n, x );
  elseif ( problem == 25 )
    h = p25_h ( n, x );
  elseif ( problem == 26 )
    h = p26_h ( n, x );
  elseif ( problem == 27 )
    h = p27_h ( n, x );
  elseif ( problem == 28 )
    h = p28_h ( n, x );
  elseif ( problem == 29 )
    h = p29_h ( n, x );
  elseif ( problem == 30 )
    h = p30_h ( n, x );
  elseif ( problem == 31 )
    h = p31_h ( n, x );
  elseif ( problem == 32 )
    h = p32_h ( n, x );
  elseif ( problem == 33 )
    h = p33_h ( n, x );
  elseif ( problem == 34 )
    h = p34_h ( n, x );
  elseif ( problem == 35 )
    h = p35_h ( n, x );
  elseif ( problem == 36 )
    h = p36_h ( n, x );
  elseif ( problem == 37 )
    h = p37_h ( n, x );
  elseif ( problem == 38 )
    h = p38_h ( n, x );
  elseif ( problem == 39 )
    h = p39_h ( n, x );
  elseif ( problem == 40 )
    h = p40_h ( n, x );
  elseif ( problem == 41 )
    h = p41_h ( n, x );
  elseif ( problem == 42 )
    h = p42_h ( n, x );
  elseif ( problem == 43 )
    h = p43_h ( n, x );
  else
    fprintf ( 1, '\n' );
    fprintf ( 1, 'P00_h - Fatal error!\n' );
    fprintf ( 1, '  Illegal value of PROBLEM = %d\n', problem );
    error ( ' - Fatal error!' );
  end

  return
end
