function [ m, n ] = p00_mn ( test )

%*****************************************************************************80
%
%% p00_mn() reports the default sizes M and N for the least squares problems.
%
%  Discussions:
%
%    Most problems have either only a single pair of values, or allow
%    any pair of M and N for which M is greater than or equal to N.
%
%    This routine tries to differentiate between these two cases.  If the value
%    of M and/or N returned is the only one appropriate, then it is positive.
%    Negative values of M or N indicate that the value is a default, but
%    by no means the only possible value to use.  In fact, in cases where
%    M must equal N, we return M = N = -10, and in all other cases we return
%    M = -10, N=-5.
%
%    Note that this system is not used for function number 11, where M = 31,
%    but N is usually 6 or 9, but may also be any value from 2 to 31.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    02 March 2026
%
%  Author:
%
%    John Burkardt
%
%  Input:
%
%    integer test: the test index.
%
%  Output:
%
%    integer M, information defining the number of
%    equations for the system.  If M is positive, then its value is usually
%    the only one appropriate for the problem.  If M is negative,
%    then any value of M greater than or equal to N is appropriate.
%
%    integer N, information defining the number of
%    variables for the system.  If N is positive, then its value is usually
%    the only one appropriate for the system.  If N is negative,
%    then any value of N less than or equal to M is appropriate.
%
  if ( test == 1 );
    m = -10;
    n = -5;
  elseif ( test == 2 );
    m = -10;
    n = -5;
  elseif ( test == 3 );
    m = -10;
    n = -5;
  elseif ( test == 4 );
    m = 2;
    n = 2;
  elseif ( test == 5 );
    m = 3;
    n = 3;
  elseif ( test == 6 );
    m = 4;
    n = 4;
  elseif ( test == 7 );
    m = 2;
    n = 2;
  elseif ( test == 8 );
    m = 15;
    n = 3;
  elseif ( test == 9 );
    m = 11;
    n = 4;
  elseif ( test == 10 );
    m = 16;
    n = 3;
  elseif ( test == 11 );
    m = 31;
    n = 6;
  elseif ( test == 12 );
    m = -10;
    n = 3;
  elseif ( test == 13 );
    m = -10;
    n = 2;
  elseif ( test == 14 );
    m = -20;
    n = 4;
  elseif ( test == 15 );
    m = -10;
    n = -5;
  elseif ( test == 16 );
    m = -10;
    n = -10;
  elseif ( test == 17 );
    m = 33;
    n = 5;
  elseif ( test == 18 );
    m = 65;
    n = 11;
  elseif ( test == 19 );
    m = 16;
    n = 2;
  elseif ( test == 20 );
    m = 16;
    n = 3;
  elseif ( test == 21 );
    m = 3;
    n = 2;
  elseif ( test == 22 );
    m = 4;
    n = 3;
  elseif ( test == 23 );
    m = 10;
    n = 5;
  elseif ( test == 24 );
    m = 24;
    n = 4;
  elseif ( test == 25 );
    m = 16;
    n = 5;
  elseif ( test == 26 );
    m = 3;
    n = 2;
  else
    fprintf ( 1, '\n' );
    fprintf ( 1, 'p00_mn(): Fatal error!\n' );
    fprintf ( 1, '  Illegal problem number = %d\n', test );
    error ( 'p00_mn(): Fatal error!' );
  end

  return
end

