function test_determinant ( )

%*****************************************************************************80
%
%% test_determinant() tests the determinant computations.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    14 October 2022
%
%  Author:
%
%    John Burkardt
%
  fprintf ( 1, '\n' );
  fprintf ( 1, 'test_determinant():\n' );
  fprintf ( 1, '  For each example matrix A that is square:\n' );
  fprintf ( 1, '  Determ = determinant from test_matrix().\n' );
  fprintf ( 1, '  det(A) = determinant from MATLAB builtin function;\n' );
  fprintf ( 1, '  Print the matrix Frobenius norm for an estimate of magnitude.\n' );
  fprintf ( 1, '\n' );
  fprintf ( 1, '  Title                    N      ' );
  fprintf ( 1, 'Determ          det(A)          ||A||\n' );
  fprintf ( 1, '\n' );
%
%  a123
%
  title = 'a123';
  n = 3;
  a = a123_matrix ( );
  determ1 = a123_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  aegerter
%
  title = 'aegerter';
  n = 5;
  a = aegerter_matrix ( n );
  determ1 = aegerter_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  anticirculant
%
  title = 'anticirculant';
  n = 3;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = anticirculant_matrix ( n, n, x );
  determ1 = anticirculant_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  anticirculant
%
  title = 'anticirculant';
  key = 123456789;
  rng ( key );
  for n = 4 : 5
    r8_lo = -5.0;
    r8_hi = +5.0;
    x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
    a = anticirculant_matrix ( n, n, x );
    determ1 = anticirculant_determinant ( n, x );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  antihadamard
%
  title = 'antihadamard';
  n = 5;
  a = antihadamard_matrix ( n );
  determ1 = antihadamard_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  antisummation
%
  title = 'antisummation';
  n = 5;
  a = antisummation_matrix ( n, n );
  determ1 = antisummation_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  antisymmetric_random
%
  title = 'antisymmetric_random';
  for n = 4 : 6
    key = 123456789;
    a = antisymmetric_random_matrix ( n, key );
    determ1 = antisymmetric_random_determinant ( n, key );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  bab
%
  title = 'bab';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  beta = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = bab_matrix ( n, alpha, beta );
  determ1 = bab_determinant ( n, alpha, beta );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  bauer
%
  title = 'bauer';
  n = 6;
  a = bauer_matrix ( );
  determ1 = bauer_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  bernstein
%
  title = 'bernstein';
  n = 5;
  a = bernstein_matrix ( n );
  determ1 = bernstein_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  bimarkov_random
%
  title = 'bimarkov_random';
  n = 5;
  key = 123456789;
  a = bimarkov_random_matrix ( n, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,         determ2, norm_frobenius );
%
%  bis
%
  title = 'bis';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  beta = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = bis_matrix ( alpha, beta, n, n );
  determ1 = bis_determinant ( alpha, beta, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  biw
%
  title = 'biw';
  n = 5;
  a = biw_matrix ( n );
  determ1 = biw_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  bodewig
%
  title = 'bodewig';
  n = 4;
  a = bodewig_matrix ( );
  determ1 = bodewig_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  boothroyd
%
  title = 'boothroyd';
  n = 5;
  a = boothroyd_matrix ( n );
  determ1 = boothroyd_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  borderband
%
  title = 'borderband';
  n = 5;
  a = borderband_matrix ( n );
  determ1 = borderband_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  carry
%
  title = 'carry';
  n = 5;
  i4_lo = 2;
  i4_hi = 20;
  key = 123456789;
  rng ( key );
  k = randi ( [ i4_lo, i4_hi ], 1 );
  a = carry_matrix ( n, k );
  determ1 = carry_determinant ( n, k );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  cauchy
%
  title = 'cauchy';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  y = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = cauchy_matrix ( n, x, y );
  determ1 = cauchy_determinant ( n, x, y );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  cheby_diff1
%
  title = 'cheby_diff1';
  for n = 5 : 6
    a = cheby_diff1_matrix ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
      title, n,          determ2, norm_frobenius );
  end
%
%  cheby_t
%
  title = 'cheby_t';
  n = 5;
  a = cheby_t_matrix ( n );
  determ1 = cheby_t_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  cheby_u
%
  title = 'cheby_u';
  n = 5;
  a = cheby_u_matrix ( n );
  determ1 = cheby_u_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  cheby_van1
%
  title = 'cheby_van1';
  n = 5;
  x_lo = -1.0;
  x_hi = +1.0;
  x = r8vec_linspace ( n, x_lo, x_hi );
  a = cheby_van1_matrix ( n, x_lo, x_hi, n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  cheby_van2
%
  for n = 2 : 10
    title = 'cheby_van2';
    a = cheby_van2_matrix ( n );
    determ1 = cheby_van2_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  cheby_van3
%
  title = 'cheby_van3';
  n = 5;
  a = cheby_van3_matrix ( n );
  determ1 = cheby_van3_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  chow
%
  title = 'chow';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  beta = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = chow_matrix ( alpha, beta, n, n );
  determ1 = chow_determinant ( alpha, beta, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  circulant
%
  title = 'circulant';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = circulant_matrix ( n, n, x );
  determ1 = circulant_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  circulant2
%
  title = 'circulant2';
  for n = 3 : 5
    a = circulant2_matrix ( n );
    determ1 = circulant2_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  clement1
%
  title = 'clement1';
  for n = 5 : 6
    a = clement1_matrix ( n );
    determ1 = clement1_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  clement2
%
  title = 'clement2';
  for n = 5 : 6
    r8_lo = -5.0;
    r8_hi = +5.0;
    key = 123456789;
    rng ( key );
    x = r8_lo + ( r8_hi - r8_lo ) * rand ( n - 1, 1 );
    y = r8_lo + ( r8_hi - r8_lo ) * rand ( n - 1, 1 );
    a = clement2_matrix ( n, x, y );
    determ1 = clement2_determinant ( n, x, y );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  combin
%
  title = 'combin';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  beta = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  determ1 = combin_determinant ( alpha, beta, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  companion
%
  title = 'companion';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = companion_matrix ( n, x );
  determ1 = companion_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  complex_i
%
  title = 'complex_i';
  n = 2;
  a = complex_i_matrix ( );
  determ1 = complex_i_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  conex1
%
  title = 'conex1';
  n = 4;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = conex1_matrix ( alpha );
  determ1 = conex1_determinant ( alpha );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  conex2
%
  title = 'conex2';
  n = 3;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = conex2_matrix ( alpha );
  determ1 = conex2_determinant ( alpha );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  conex3
%
  title = 'conex3';
  n = 5;
  a = conex3_matrix ( n );
  determ1 = conex3_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  conex4
%
  title = 'conex4';
  n = 4;
  a = conex4_matrix ( );
  determ1 = conex4_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  conference
%
  title = 'conference';
  n = 6;
  a = conference_matrix ( n );
  determ1 = conference_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  creation
%
  title = 'creation';
  n = 5;
  a = creation_matrix ( n, n );
  determ1 = creation_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  daub2
%
  title = 'daub2';
  n = 4;
  a = daub2_matrix ( n );
  determ1 = daub2_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  daub4
%
  title = 'daub4';
  n = 8;
  a = daub4_matrix ( n );
  determ1 = daub4_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  daub6
%
  title = 'daub6';
  n = 12;
  a = daub6_matrix ( n );
  determ1 = daub6_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  daub8
%
  title = 'daub8';
  n = 16;
  a = daub8_matrix ( n );
  determ1 = daub8_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  daub10
%
  title = 'daub10';
  n = 20;
  a = daub10_matrix ( n );
  determ1 = daub10_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  daub12
%
  title = 'daub12';
  n = 24;
  a = daub12_matrix ( n );
  determ1 = daub12_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  defective
%
  title = 'defective';
  n = 2;
  a = defective_matrix ( );
  determ1 = defective_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  diagonal
%
  title = 'diagonal';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = diagonal_matrix ( n, n, x );
  determ1 = diagonal_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  dif1
%
  title = 'dif1';
  for n = 6 : 8
    a = dif1_matrix ( n, n );
    determ1 = dif1_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  dif1cyclic
%
  title = 'dif1cyclic';
  n = 6;
  a = dif1cyclic_matrix ( n );
  determ1 = dif1cyclic_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  dif2
%
  title = 'dif2';
  n = 5;
  a = dif2_matrix ( n, n );
  determ1 = dif2_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  dif2cyclic
%
  title = 'dif2cyclic';
  n = 5;
  a = dif2cyclic_matrix ( n );
  determ1 = dif2cyclic_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  dorr
%
  title = 'dorr';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  determ1 = dorr_determinant ( alpha, n );
  a = dorr_matrix ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  downshift
%
  title = 'downshift';
  n = 5;
  a = downshift_matrix ( n );
  determ1 = downshift_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  drmac_bad
%
  title = 'drmac_bad';
  n = 3;
  a = drmac_bad_matrix ( );
  determ1 = drmac_bad_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  drmac_good
%
  title = 'drmac_good';
  n = 3;
  a = drmac_good_matrix ( );
  determ1 = drmac_good_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  eberlein
%
  title = 'eberlein';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = eberlein_matrix ( alpha, n );
  determ1 = eberlein_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  eulerian
%
  title = 'eulerian';
  n = 5;
  a = eulerian_matrix ( n, n );
  determ1 = eulerian_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  exchange
%
  title = 'exchange';
  n = 5;
  a = exchange_matrix ( n, n );
  determ1 = exchange_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  fibonacci1
%
  title = 'fibonacci1';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  beta = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = fibonacci1_matrix ( n, alpha, beta );
  determ1 = fibonacci1_determinant ( n, alpha, beta );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  fibonacci2
%
  title = 'fibonacci2';
  n = 5;
  a = fibonacci2_matrix ( n );
  determ1 = fibonacci2_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  fibonacci3
%
  title = 'fibonacci3';
  n = 5;
  a = fibonacci3_matrix ( n );
  determ1 = fibonacci3_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  fiedler
%
  title = 'fiedler';
  n = 7;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = fiedler_matrix ( n, n, x );
  determ1 = fiedler_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  forsythe
%
  title = 'forsythe';
  for n = 5 : 6
    r8_lo = -5.0;
    r8_hi = +5.0;
    key = 123456789;
    rng ( key );
    alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
    beta = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
    a = forsythe_matrix ( alpha, beta, n );
    determ1 = forsythe_determinant ( alpha, beta, n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  fourier_cosine
%
  title = 'fourier_cosine';
  n = 5;
  a = fourier_cosine_matrix ( n );
  determ1 = fourier_cosine_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  fourier_sine
%
  title = 'fourier_sine';
  n = 5;
  a = fourier_sine_matrix ( n );
  determ1 = fourier_sine_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  frank
%
  title = 'frank';
  n = 5;
  a = frank_matrix ( n );
  determ1 = frank_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  gfpp
%
  title = 'gfpp';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = gfpp_matrix ( n, alpha );
  determ1 = gfpp_determinant ( n, alpha );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  givens
%
  title = 'givens';
  n = 5;
  a = givens_matrix ( n, n );
  determ1 = givens_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  gk316
%
  title = 'gk316';
  n = 5;
  a = gk316_matrix ( n );
  determ1 = gk316_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  gk323
%
  title = 'gk323';
  n = 5;
  a = gk323_matrix ( n, n );
  determ1 = gk323_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  gk324
%
  title = 'gk324';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n - 1, 1 );
  a = gk324_matrix ( n, n, x );
  determ1 = gk324_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  golub
%
  title = 'golub';
  n = 5;
  key = 123456789;
  a = golub_matrix ( n, key );
  determ1 = golub_determinant ( n, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  grcar
%
  title = 'grcar';
  n = 5;
  i4_lo = 1;
  i4_hi = n - 1;
  key = 123456789;
  rng ( key );
  k = randi ( [ i4_lo, i4_hi ], 1 );
  a = grcar_matrix ( n, n, k );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  hadamard
%
  title = 'hadamard';
  n = 5;
  a = hadamard_matrix ( n, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  hankel
%
  title = 'hankel';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( 2 * n - 1, 1 );
  a = hankel_matrix ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,           determ2, norm_frobenius );
%
%  hankel_n
%
  title = 'hankel_n';
  n = 5;
  a = hankel_n_matrix ( n );
  determ1 = hankel_n_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  hanowa
%
  title = 'hanowa';
  n = 6;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = hanowa_matrix ( alpha, n );
  determ1 = hanowa_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  harman
%
  title = 'harman';
  n = 8;
  a = harman_matrix ( );
  determ1 = harman_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  hartley
%
  for n = 5 : 8
    title = 'hartley';
    a = hartley_matrix ( n );
    determ1 = hartley_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  helmert
%
  title = 'helmert';
  n = 5; 
  a = helmert_matrix ( n );
  determ1 = helmert_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  helmert2
%
  title = 'helmert2';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = helmert2_matrix ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,           determ2, norm_frobenius );
%
%  hermite
%
  title = 'hermite';
  n = 5; 
  a = hermite_matrix ( n );
  determ1 = hermite_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  herndon
%
  title = 'herndon';
  n = 5; 
  a = herndon_matrix ( n );
  determ1 = herndon_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  hilbert
%
  title = 'hilbert';
  n = 5; 
  a = hilbert_matrix ( n, n );
  determ1 = hilbert_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  householder
%
  title = 'householder';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = householder_matrix ( n, x );
  determ1 = householder_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  idempotent_random
%
  title = 'idempotent_random';
  n = 5;
  i4_lo = 0;
  i4_hi = n;
  key = 123456789;
  rng ( key );
  rank = randi ( [ i4_lo, i4_hi ], 1 );
  a = idempotent_random_matrix ( n, rank, key );
  determ1 = idempotent_random_determinant ( n, rank, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  identity
%
  title = 'identity';
  n = 5;
  a = identity_matrix ( n, n );
  determ1 = identity_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  ijfact1
%
  title = 'ijfact1';
  n = 5;
  a = ijfact1_matrix ( n );
  determ1 = ijfact1_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  ijfact2
%
  title = 'ijfact2';
  n = 5;
  a = ijfact2_matrix ( n );
  determ1 = ijfact2_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  ill3
%
  title = 'ill3';
  n = 3;
  a = ill3_matrix ( );
  determ1 = ill3_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  integration
%
  title = 'integration';
  n = 6;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = integration_matrix ( alpha, n );
  determ1 = integration_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  involutory
%
  title = 'involutory';
  n = 5;
  a = involutory_matrix ( n );
  determ1 = involutory_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  involutory_random
%
  title = 'involutory_random';
  n = 5;
  i4_lo = 0;
  i4_hi = n;
  key = 123456789;
  rng ( key );
  rank = randi ( [ i4_lo, i4_hi ], 1 );
  a = involutory_random_matrix ( n, rank, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,           determ2, norm_frobenius );
%
%  jacobi
%
  title = 'jacobi';
  for n = 5 : 6
    a = jacobi_matrix ( n, n );
    determ1 = jacobi_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  jordan
%
  title = 'jordan';
  n = 6;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = jordan_matrix ( n, n, alpha );
  determ1 = jordan_determinant ( n, alpha );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  kahan
%
  title = 'kahan';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = kahan_matrix ( alpha, n, n );
  determ1 = kahan_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  kershaw
%
  title = 'kershaw';
  n = 4;
  a = kershaw_matrix ( );
  determ1 = kershaw_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  kershawtri
%
  title = 'kershawtri';
  n = 5;
  x_n = floor ( ( n + 1 ) / 2 );
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( x_n, 1 );
  a = kershawtri_matrix ( n, x );
  determ1 = kershawtri_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  kms
%
  title = 'kms';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = kms_matrix ( alpha, n, n );
  determ1 = kms_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  laguerre
%
  title = 'laguerre';
  n = 5;
  a = laguerre_matrix ( n );
  determ1 = laguerre_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  legendre
%
  title = 'legendre';
  n = 5;
  a = legendre_matrix ( n );
  determ1 = legendre_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  lehmer
%
  title = 'lehmer';
  n = 5;
  a = lehmer_matrix ( n, n );
  determ1 = lehmer_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  leslie
%
  title = 'leslie';
  n = 4;
  b =  0.025;
  di = 0.010;
  da = 0.100;
  a = leslie_matrix ( b, di, da );
  determ1 = leslie_determinant ( b, di, da );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  lesp
%
  title = 'lesp';
  n = 5;
  a = lesp_matrix ( n, n );
  determ1 = lesp_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  lietzke
%
  title = 'lietzke';
  n = 5;
  a = lietzke_matrix ( n );
  determ1 = lietzke_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  lights_out
%
  title = 'lights_out';
  row_num = 5;
  col_num = 5;
  [ n, a ] = lights_out_matrix ( row_num, col_num );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,           determ2, norm_frobenius );
%
%  line_adj
%
  title = 'line_adj';
  for n = 5 : 6
    a = line_adj_matrix ( n );
    determ1 = line_adj_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  line_loop_adj
%
  title = 'line_loop_adj';
  n = 5;
  a = line_loop_adj_matrix ( n );
  determ1 = line_loop_adj_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  loewner
%
  title = 'loewner';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  w = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  y = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  z = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = loewner_matrix ( w, x, y, z, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  lotkin
%
  title = 'lotkin';
  n = 5;
  a = lotkin_matrix ( n, n );
  determ1 = lotkin_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  markov_random
%
  title = 'markov_random';
  n = 5;
  key = 123456789;
  a = markov_random_matrix ( n, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  maxij
%
  title = 'maxij';
  n = 5;
  a = maxij_matrix ( n, n );
  determ1 = maxij_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  milnes
%
  title = 'milnes';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = milnes_matrix ( n, n, x );
  determ1 = milnes_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  minij
%
  title = 'minij';
  n = 5;
  a = minij_matrix ( n, n );
  determ1 = minij_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  moler1
%
  title = 'moler1';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = moler1_matrix ( alpha, n, n );
  determ1 = moler1_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  moler2
%
  title = 'moler2';
  n = 5;
  a = moler2_matrix ( );
  determ1 = moler2_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  moler3
%
  title = 'moler3';
  n = 5;
  a = moler3_matrix ( n, n );
  determ1 = moler3_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  moler4
%
  title = 'moler4';
  n = 4;
  a = moler4_matrix ( );
  determ1 = moler4_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  neumann
%
  title = 'neumann';
  row_num = 5;
  col_num = 5;
  n = row_num * col_num;
  a = neumann_matrix ( row_num, col_num );
  determ1 = neumann_determinant ( row_num, col_num );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  one
%
  title = 'one';
  n = 5;
  a = one_matrix ( n, n );
  determ1 = one_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  ortega
%
  title = 'ortega';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  v1 = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  v2 = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  v3 = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = ortega_matrix ( n, v1, v2, v3 );
  determ1 = ortega_determinant ( n, v1, v2, v3 );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  orthogonal_random
%
  title = 'orthogonal_random';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  a = orthogonal_random_matrix ( n, key );
  determ1 = orthogonal_random_determinant ( n, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  orthogonal_symmetric
%
  title = 'orthogonal_symmetric';
  n = 5;
  a = orthogonal_symmetric_matrix ( n );
  determ1 = orthogonal_symmetric_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  oto
%
  title = 'oto';
  n = 5;
  a = oto_matrix ( n, n );
  determ1 = oto_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  parter
%
  title = 'parter';
  n = 5;
  a = parter_matrix ( n, n );
  determ1 = parter_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  pascal1
%
  title = 'pascal1';
  n = 5;
  a = pascal1_matrix ( n );
  determ1 = pascal1_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  pascal2
%
  title = 'pascal2';
  n = 5;
  a = pascal2_matrix ( n );
  determ1 = pascal2_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  pascal3
%
  title = 'pascal3';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = pascal3_matrix ( n, alpha );
  determ1 = pascal3_determinant ( n, alpha );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  pei
%
  title = 'pei';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = pei_matrix ( alpha, n );
  determ1 = pei_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  permutation_random
%
  title = 'permutation_random';
  n = 5;
  key = 123456789;
  a = permutation_random_matrix ( n, key );
  determ1 = permutation_random_determinant ( n, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  plu
%
  title = 'plu';
  n = 5;
  key = 123456789;
  rng ( key );
  for i = 1 : n
    pivot(i) = randi ( [ i, n ], 1 );
  end
  a = plu_matrix ( n, pivot );
  determ1 = plu_determinant ( n, pivot );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  poisson
%
  title = 'poisson';
  row_num = 5;
  col_num = 5;
  n = row_num * col_num;
  a = poisson_matrix ( row_num, col_num );
  determ1 = poisson_determinant ( row_num, col_num );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  projection_random (k=n)
%
  title = 'projection_random';
  n = 5;
  k = 5;
  key = 123456789;
  a = projection_random_matrix ( n, k, key );
  determ1 = projection_random_determinant ( n, k, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  projection_random (k<n)
%
  title = 'projection_random';
  n = 5;
  k = 3;
  key = 123456789;
  a = projection_random_matrix ( n, k, key );
  determ1 = projection_random_determinant ( n, k, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  prolate
%
  title = 'prolate';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = prolate_matrix ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  rectangle_adj
%
  title = 'rectangle_adj';
  row_num = 5;
  col_num = 5;
  n = row_num * col_num;
  a = rectangle_adj_matrix ( row_num, col_num, n  );
  determ1 = rectangle_adj_determinant ( row_num, col_num );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  redheffer
%
  title = 'redheffer';
  n = 5;
  a = redheffer_matrix ( n );
  determ1 = redheffer_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  ref_random
%
  title = 'ref_random';
  n = 5;
  prob = 0.85;
  key = 123456789;
  a = ref_random_matrix ( n, n, prob, key );
  determ1 = ref_random_determinant ( n, prob, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  riemann
%
  title = 'riemann';
  n = 5;
  a = riemann_matrix ( n, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  ring_adj
%
  for n = 1 : 8
    title = 'ring_adj';
    a = ring_adj_matrix ( n );
    determ1 = ring_adj_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  ris
%
  title = 'ris';
  n = 5;
  a = ris_matrix ( n );
  determ1 = ris_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  rodman
%
  title = 'rodman';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = rodman_matrix ( n, n, alpha );
  determ1 = rodman_determinant ( n, alpha );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  rosser1
%
  title = 'rosser1';
  n = 8;
  a = rosser1_matrix ( );
  determ1 = rosser1_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  routh
%
  title = 'routh';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = routh_matrix ( n, x );
  determ1 = routh_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  rutis1
%
  title = 'rutis1';
  n = 4;
  a = rutis1_matrix ( );
  determ1 = rutis1_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  rutis2
%
  title = 'rutis2';
  n = 4;
  a = rutis2_matrix ( );
  determ1 = rutis2_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  rutis3
%
  title = 'rutis3';
  n = 4;
  a = rutis3_matrix ( );
  determ1 = rutis3_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  rutis4
%
  title = 'rutis4';
  n = 5;
  a = rutis4_matrix ( n );
  determ1 = rutis4_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  rutis5
%
  title = 'rutis5';
  n = 4;
  a = rutis5_matrix ( );
  determ1 = rutis5_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  schur_block
%
  title = 'schur_block';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x_n = floor ( ( n + 1 ) / 2 );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( x_n, 1 );
  y_n = floor ( n / 2 );
  y = r8_lo + ( r8_hi - r8_lo ) * rand ( y_n, 1 );
  a = schur_block_matrix ( n, x, y );
  determ1 = schur_block_determinant ( n, x, y );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  skew_circulant
%
  title = 'skew_circulant';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = skew_circulant_matrix ( n, n, x );
  determ1 = skew_circulant_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  smoke1
%  Complex matrix, not ready yet.
%
  if ( false )
    title = 'smoke1';
    n = 5;
    a = smoke1_matrix ( n );
    determ1 = smoke1_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  smoke2
%  (complex matrix)
%
  if ( false )
    title = 'smoke2';
    n = 5;
    a = smoke2_matrix ( n );
    determ1 = smoke2_determinant ( n );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  spd_random
%
  title = 'spd_random';
  n = 5;
  key = 123456789;
  a = spd_random_matrix ( n, key );
  determ1 = spd_random_determinant ( n, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  spline
%
  title = 'spline';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = spline_matrix ( n, x );
  determ1 = spline_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  stirling
%
  title = 'stirling';
  n = 5;
  a = stirling_matrix ( n, n );
  determ1 = stirling_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  stripe
%
  title = 'stripe';
  n = 5;
  a = stripe_matrix ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,           determ2, norm_frobenius );
%
%  summation
%
  title = 'summation';
  n = 5;
  a = summation_matrix ( n, n );
  determ1 = summation_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  sweet1
%
  title = 'sweet1';
  n = 6;
  a = sweet1_matrix ( );
  determ1 = sweet1_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  sweet2
%
  title = 'sweet2';
  n = 6;
  a = sweet2_matrix ( );
  determ1 = sweet2_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  sweet3
%
  title = 'sweet3';
  n = 6;
  a = sweet3_matrix ( );
  determ1 = sweet3_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  sweet4
%
  title = 'sweet4';
  n = 13;
  a = sweet4_matrix ( );
  determ1 = sweet4_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  sylvester
%
  title = 'sylvester';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x_n = 3 + 1;
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( x_n, 1 );
  y_n = 2 + 1;
  y = r8_lo + ( r8_hi - r8_lo ) * rand ( y_n, 1 );
  a = sylvester_matrix ( n, x_n - 1, x, y_n - 1, y );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  sylvester_kac
%
  title = 'sylvester_kac';
  n = 5;
  a = sylvester_kac_matrix ( n );
  determ1 = sylvester_kac_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  sylvester_kac
%
  title = 'sylvester_kac';
  n = 6;
  a = sylvester_kac_matrix ( n );
  determ1 = sylvester_kac_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  symmetric_random
%
  title = 'symmetric_random';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = symmetric_random_matrix ( n, x, key );
  determ1 = symmetric_random_determinant ( n, x, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  toeplitz
%
  title = 'toeplitz';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x_n = 2 * n - 1;
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( x_n, 1 );
  a = toeplitz_matrix ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  toeplitz_5diag
%
  title = 'toeplitz_5diag';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  d1 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d2 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d3 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d4 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d5 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = toeplitz_5diag_matrix ( n, d1, d2, d3, d4, d5 );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  toeplitz_5s
%
  title = 'toeplitz_5s';
  row_num = 5;
  col_num = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  beta = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  gamma = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  [ n, a ] = toeplitz_5s_matrix ( row_num, col_num, alpha, beta, gamma );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  toeplitz_spd
%
  title = 'toeplitz_spd';
  m = 3;
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( m, 1 );
  y = r8_lo + ( r8_hi - r8_lo ) * rand ( m, 1 );
  y_sum = sum ( y(1:m) );
  y(1:m) = y(1:m) / y_sum;
  a = toeplitz_spd_matrix ( m, n, x, y );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  tournament_random
%
  title = 'tournament_random';
  for n = 8 : 10
    key = 123456789;
    a = tournament_random_matrix ( n, key );
    determ1 = tournament_random_determinant ( n, key );
    determ2 = det ( a );
    norm_frobenius = norm ( a, 'fro' );
    fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
      title, n, determ1, determ2, norm_frobenius );
  end
%
%  transition_random
%
  title = 'transition_random';
  n = 5;
  key = 123456789;
  a = transition_random_matrix ( n, key );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  trench
%
  title = 'trench';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = trench_matrix ( alpha, n, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  tri_upper
%
  title = 'tri_upper';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = tri_upper_matrix ( alpha, n );
  determ1 = tri_upper_determinant ( alpha, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  tris
%
  title = 'tris';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  d1 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d2 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d3 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = tris_matrix ( n, n, d1, d2, d3 );
  determ1 = tris_determinant ( n, d1, d2, d3 );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  triv
%
  title = 'triv';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n - 1, 1 );
  y = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  z = r8_lo + ( r8_hi - r8_lo ) * rand ( n - 1, 1 );
  a = triv_matrix ( n, x, y, z );
  determ1 = triv_determinant ( n, x, y, z );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  triw
%
  title = 'triw';
  n = 5;
  i4_lo = 0;
  i4_hi = n - 1;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  k = randi ( [ i4_lo, i4_hi ], 1 );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = triw_matrix ( alpha, k, n );
  determ1 = triw_determinant ( alpha, k, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  unitary_random
%
  title = 'unitary_random';
  n = 5;
  key = 123456789;
  a = unitary_random_matrix ( n, key );
  determ1 = unitary_random_determinant ( n, key );
  determ2 = det ( a );
  norm_frobenius = c8mat_norm_fro ( n, n, a );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  upshift
%
  title = 'upshift';
  n = 5;
  a = upshift_matrix ( n );
  determ1 = upshift_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  vand1
%
  title = 'vand1';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = vand1_matrix ( n, x );
  determ1 = vand1_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  vand2
%
  title = 'vand2';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  x = r8_lo + ( r8_hi - r8_lo ) * rand ( n, 1 );
  a = vand2_matrix ( n, x );
  determ1 = vand2_determinant ( n, x );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  wathen
%
  title = 'wathen';
  row_num = 5;
  col_num = 5;
  n = wathen_order ( row_num, col_num );
  a = wathen_matrix ( row_num, col_num, n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  wilk03
%
  title = 'wilk03';
  n = 3;
  a = wilk03_matrix ( );
  determ1 = wilk03_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  wilk04
%
  title = 'wilk04';
  n = 4;
  a = wilk04_matrix ( );
  determ1 = wilk04_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  wilk05
%
  title = 'wilk05';
  n = 5;
  a = wilk05_matrix ( );
  determ1 = wilk05_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  wilk20
%
  title = 'wilk20';
  n = 20;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  alpha = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = wilk20_matrix ( alpha );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );
%
%  wilk21
%
  title = 'wilk21';
  n = 21;
  a = wilk21_matrix ( n );
  determ1 = wilk21_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  wilson
%
  title = 'wilson';
  n = 4;
  a = wilson_matrix ( );
  determ1 = wilson_determinant ( );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  zero
%
  title = 'zero';
  n = 5;
  a = zero_matrix ( n, n );
  determ1 = zero_determinant ( n );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d  %14g  %14g  %10.2g\n', ...
    title, n, determ1, determ2, norm_frobenius );
%
%  zielke
%
  title = 'zielke';
  n = 5;
  r8_lo = -5.0;
  r8_hi = +5.0;
  key = 123456789;
  rng ( key );
  d1 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d2 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  d3 = r8_lo + ( r8_hi - r8_lo ) * rand ( 1, 1 );
  a = zielke_matrix ( n, d1, d2, d3 );
  determ2 = det ( a );
  norm_frobenius = norm ( a, 'fro' );
  fprintf ( 1, '  %-20s  %4d                  %14g  %10.2g\n', ...
    title, n,          determ2, norm_frobenius );

  return
end
