14-May-2025 08:24:08 boundary_word_hexagon_test(): MATLAB/Octave version 6.4.0 boundary_word_hexagon() is a library of boundary word functions for polyhexes, shapes defined on a grid of hexagons. boundary_is_legal_test(): boundary_is_legal() checks whether a polyhex boundary word is legal. Name Boundary word Legal? arch "121232343456165456" True bar "123232323456565656" True bee "12123434545616" True pistol "1232123434565656" True propeller "121612343234565456" True wave "121232123454565456" True worm "123232123454565656" True Illegal character "123230323456560656" False 3 and 6 do not match "123232323456565356" False Nonunit step "123234356565656232" False boundary_plot_test(): boundary_plot() plots a polyhex from its boundary word. Graphics saved as "arch_boundary.png" Graphics saved as "bar_boundary.png" Graphics saved as "bee_boundary.png" Graphics saved as "pistol_boundary.png" Graphics saved as "propeller_boundary.png" Graphics saved as "wave_boundary.png" Graphics saved as "worm_boundary.png" boundary_plot_test(): Normal end of execution. boundary_print_test(): boundary_print() prints the boundary word of a polyhex. arch hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] bar hex boundary word: "123232323456565656" base point (i,j) : [ 0, 0 ] bee hex boundary word: "12123434545616" base point (i,j) : [ 0, 0 ] pistol hex boundary word: "1232123434565656" base point (i,j) : [ 0, 0 ] propeller hex boundary word: "121612343234565456" base point (i,j) : [ 0, 0 ] wave hex boundary word: "121232123454565456" base point (i,j) : [ 0, 0 ] worm hex boundary word: "123232123454565656" base point (i,j) : [ 0, 0 ] boundary_range_test(): boundary_range() finds the minimum and maximum I and J coordinates of a polyhex described by its boundary word W and starting at P(i,j). Name Imin Imax Jmin Jmax Pi Pj W arch -3 2 0 6 0 0 "121232343456165456" bar -4 1 0 8 0 0 "123232323456565656" bee -3 2 0 4 0 0 "12123434545616" pistol -3 1 0 6 0 0 "1232123434565656" propeller -1 4 0 5 0 0 "121612343234565456" wave -1 2 0 6 0 0 "121232123454565456" worm -3 1 0 7 0 0 "123232123454565656" boundary_reflect_test(): boundary_reflect() is given a boundary word W and base point P, and reflects about the 0, 60, or 120 degree axis. pistol hex boundary word: "1232123434565656" base point (i,j) : [ 0, 0 ] pistol, 0 degree reflection hex boundary word: "1656165454323232" base point (i,j) : [ 0, 0 ] pistol, 60 degree reflection hex boundary word: "3212321616545454" base point (i,j) : [ 0, 0 ] pistol, 120 degree reflection hex boundary word: "5434543232161616" base point (i,j) : [ 0, 0 ] Graphics saved as "boundary_reflect_test.png" boundary_representative_test(): boundary_representative() is given a boundary word, and returns the representative of its equivalence class. "rotated" arch: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "212323434561654561" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "123234345616545612" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "232343456165456121" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "323434561654561212" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "234345616545612123" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "343456165456121232" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "434561654561212323" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "345616545612123234" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] "rotated" arch: hex boundary word: "456165456121232343" base point (i,j) : [ 0, 0 ] "rotated" arch representative: hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] boundary_rotate_test(): boundary_rotate() rotates a polyhex described by its boundary word. Graphics saved as "boundary_rotate_worm_000.png" Graphics saved as "boundary_rotate_worm_060.png" Graphics saved as "boundary_rotate_worm_120.png" Graphics saved as "boundary_rotate_worm_180.png" Graphics saved as "boundary_rotate_worm_240.png" Graphics saved as "boundary_rotate_worm_300.png" boundary_snap_test(): boundary_snap() translates a polyhex so that it has minimum I and J node coordinates of 0. Graphics saved as "boundary_snap_test.png" boundary_sort_test(): boundary_sort() is given a boundary word and base point and "rotates" it to have lexically smallest base point. arch hex boundary word: "121232343456165456" base point (i,j) : [ 0, 0 ] arch after sorting: hex boundary word: "561654561212323434" base point (i,j) : [ -3, 5 ] bar hex boundary word: "123232323456565656" base point (i,j) : [ 0, 0 ] bar after sorting: hex boundary word: "565656561232323234" base point (i,j) : [ -4, 7 ] bee hex boundary word: "12123434545616" base point (i,j) : [ 0, 0 ] bee after sorting: hex boundary word: "56161212343454" base point (i,j) : [ -3, 2 ] pistol hex boundary word: "1232123434565656" base point (i,j) : [ 0, 0 ] pistol after sorting: hex boundary word: "5656561232123434" base point (i,j) : [ -3, 5 ] propeller hex boundary word: "121612343234565456" base point (i,j) : [ 0, 0 ] propeller after sorting: hex boundary word: "561216123432345654" base point (i,j) : [ -1, 1 ] wave hex boundary word: "121232123454565456" base point (i,j) : [ 0, 0 ] wave after sorting: hex boundary word: "561212321234545654" base point (i,j) : [ -1, 1 ] worm hex boundary word: "123232123454565656" base point (i,j) : [ 0, 0 ] worm after sorting: hex boundary word: "565656123232123454" base point (i,j) : [ -3, 5 ] boundary_to_edge_test(): boundary_to_edge() uses a boundary word to determine the (i,j) coordinates of the edge nodes. boundary word hex boundary word: "1232123434565656" base point (i,j) : [ 0, 0 ] edge node coordinates: 1: 0 0 2: 1 0 3: 1 1 4: 0 2 5: 0 3 6: 1 3 7: 1 4 8: 0 5 9: -1 5 10: -2 6 11: -3 6 12: -3 5 13: -2 4 14: -2 3 15: -1 2 16: -1 1 17: 0 0 boundary_to_vertex_test(): boundary_to_vertex() converts a boundary word to a vertex list. boundary word hex boundary word: "1232123434565656" base point (i,j) : [ 0, 0 ] vertex list 1: 0 0 2: 1 0 3: 1 1 4: 0 2 5: 0 3 6: 1 3 7: 1 4 8: 0 5 9: -1 5 10: -2 6 11: -3 6 12: -3 5 13: -2 4 14: -2 3 15: -1 2 16: -1 1 boundary_translate_test(): boundary_translate() translates a shape described by its boundary word. Graphics saved as "boundary_translate_test.png" grid_plot_test(): grid_plot() plots a polyiamond grid from its boundary word. Graphics saved as "grid_plot_test.png" boundary_word_hexagon_test(): Normal end of execution. 14-May-2025 08:24:31