function [ A, b ] = variomino_matrix_reid ( )

%*****************************************************************************80
%
%% variomino_matrix_reid() sets the matrix for the Reid problem.
%
%  Discussion:
%
%    This function sets up the linear system A*x=b associated with
%    the Reid variomino tiling problem.
%
%    While it is desirable to have a general procedure that can automatically
%    deduce the linear system from the problem specification, for simplicity
%    in this example, we simply provide the linear system directly.
%
%    The region is:
%
%      3  1  0
%      2  3  1
%      1  2  3
%
%    Variomino N, to be used once, is:
%
%      1  2
%
%    Variomino O, to be used once, is:
%
%      2  3
%
%    Variomino P, to be used twice,m is:
%
%      1  3
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    21 April 2023
%
%  Author:
%
%    John Burkardt
%
%  Output:
%
%    real A(11,10): the system matrix.
%
%    real b(11): the right hand side.
%

%
%  Each of 8 cells must be covered by one of 10 variomino placements.
%  Each of 3 types of variomino must be used a given number of times.
%
  A = [ ...
    0, 0, 0, 0, 1, 0, 1, 0, 0, 0; ...
    0, 1, 1, 0, 1, 0, 0, 0, 0, 0; ...
    1, 1, 0, 0, 0, 0, 0, 0, 0, 0; ...
    0, 0, 0, 0, 0, 0, 1, 0, 1, 0; ...
    0, 0, 1, 0, 0, 1, 0, 1, 1, 0; ...
    1, 0, 0, 1, 0, 1, 0, 0, 0, 0; ...
    0, 0, 0, 0, 0, 0, 0, 1, 0, 1; ...
    0, 0, 0, 1, 0, 0, 0, 0, 0, 1; ...
    1, 1, 0, 0, 0, 0, 0, 0, 0, 0; ...
    0, 0, 1, 1, 1, 1, 0, 0, 0, 0; ...
    0, 0, 0, 0, 0, 0, 1, 1, 1, 1 ];

  b = [ 1;1;1;1;1;1;1;1;1;1;2];

  return
end

