polyomino_parity
    
    
    
      polyomino_parity,
      an Octave code which
      uses parity considerations to determine whether a given set of
      polyominoes can tile a specified region.
    
    
      Licensing:
    
    
      The information on this web page is distributed under the MIT license.
    
    
      Languages:
    
    
      polyomino_parity is available in
      a MATLAB version and
      an Octave versionand
      a Python version.
    
    
      Related Data and Programs:
    
    
      
      polyomino_parity_test
    
    
      
      boundary_word_square,
      an Octave code which
      describes the outline of an object on a grid of squares,
      using a string of symbols that represent the sequence of steps
      tracing out the boundary.
    
    
      
      diophantine_nd,
      an Octave code which
      is given a Diophantine equation in N variables, 
      and returns all strictly positive solutions,
      or all nonnegative solutions.
    
    
      
      pariomino,
      an Octave code which
      considers pariominoes, which are polyominoes with a checkerboard parity.
    
    
      
      polyominoes,
      an Octave code which
      defines, solves, and plots a variety of polyomino tiling problems,
      which are solved by a direct algebraic approach involving the
      reduced row echelon form (RREF) of a specific matrix, instead of the
      more typical brute-force or backtracking methods.
    
    
      Reference:
    
    
      
        - 
          Marcus Garvie, John Burkardt,
          A new mathematical model for tiling finite regions of the plane
          with polyominoes,
          Contributions to Discrete Mathematics,
          Volume 15, Number 2, July 2020.
         
        - 
          Solomon Golomb,
          Polyominoes: Puzzles, Patterns, Problems, and Packings,
          Princeton University Press, 1996,
          ISBN: 9780691024448
         
      
    
    
      Source Code:
    
    
      
        - 
          addmultisteps.m,
          seeks combinations of N1 elements of (-Q1,+Q1), N2 elements
          of (-Q2,Q2), ..., and NK elements of (-QK,+QK), 
          that match a given sum.
        
 
        - 
          
          diophantine_nd_nonnegative.m,
          returns all nonnegative solutions of a Diophantine equation
          in N variables.
        
 
        - 
          
          diophantine_nd_positive.m,
          returns all strictly positive solutions of a Diophantine equation
          in N variables.
        
 
        - 
          pv_search.m,
          finds trivial and serious parity violations in proposed
          tilings of a region by a set of polyominoes.
        
 
        - 
          pv_search_post.m,
          prints the results from a call to pv_search().
        
 
        - 
          sumallsteps.m,
          finds all possible sums of A plus N signed copies of Q.
        
 
        - 
          timestamp.m,
          prints the YMDHMS date as a timestamp.
        
 
      
    
    
    
      Last modified on 21 July 2020.