function [ N1, N2 ] = lo_solvability_matrices ( )

%*****************************************************************************80
%
%% lo_solvability_matrices() returns solvability matrices N1 and N2.
%
%  Discussion:
%
%    A given 5x5 Lights Out configuration L is solvable if and only if
%    if is orthogonal to both the N1 and N2 solvability matrices.
%
%    Here orthogonal means orthogonal modulo 2.  You take the element-wise
%    dot product of the two matrices modulo 2.  If it is zero, then they
%    are orthogonal.
%
%  Licensing:
%
%    This code is distributed under the MIT license.
%
%  Modified:
%
%    11 November 2024
%
%  Author:
%
%    John Burkardt
%
%  Output:
%
%    logical N1(5,5), N2(5,5): the solvability matrices.
%
  N1 = [ ...
    0, 1, 1, 1, 0; ...
    1, 0, 1, 0, 1; ...
    1, 1, 0, 1, 1; ...
    1, 0, 1, 0, 1; ...
    0, 1, 1, 1, 0 ];

  N2 = [ ...
    1, 0, 1, 0, 1; ...
    1, 0, 1, 0, 1; ...
    0, 0, 0, 0, 0; ...
    1, 0, 1, 0, 1; ...
    1, 0, 1, 0, 1 ];

  return
end

