08-Jan-2022 08:57:24 polyiamonds_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2. Test polyiamonds(). boolean_to_string_test(): boolean_to_string creates the string "True" or "False" based on a boolean value. This can be useful when printing boolean results. I isPrime? 1 False 2 True 3 True 4 False 5 True 6 False 7 True 8 False 9 False 10 False boolean_to_string_test() Normal end of execution. boundary_hexiamond_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_hexiamond() returns the boundary word of a hexiamond. bat boundary word: "11004343" base point : [ 0, 0 ] crown boundary word: "11045342" base point : [ 1, 0 ] pistol boundary word: "01045332" base point : [ 1, 0 ] snake boundary word: "01053432" base point : [ 1, 0 ] boundary_hexiamond_test(): Normal end of execution. boundary_is_legal_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_is_legal() checks whether a polyiamond boundary word is legal. Index Name Boundary Legal 1 bat "11004343" True 2 butterfly "11504423" True 3 club "11044532" True 4 crown "11045342" True 5 hexagon "105432" True 6 lobster "02055332" True 7 pistol "01045332" True 8 rhomboid "11104443" True 9 shoe "10205433" True 10 snake "01053432" True 11 sphinx "11154533" True 12 yacht "11053533" True boundary_is_legal_test(): Normal end of execution. boundary_plot_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_plot() plots a polyiamond from its boundary word. Graphics saved as "boundary_plot_test.png" boundary_plot_test(): Normal end of execution. boundary_print_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_print() prints a polyiamond from its boundary word. bat boundary word: "11004343" base point : [ 0, 0 ] crown boundary word: "11045342" base point : [ 1, 0 ] pistol boundary word: "01045332" base point : [ 1, 0 ] snake boundary word: "01053432" base point : [ 1, 0 ] boundary_print_test(): Normal end of execution. boundary_range_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_range() finds the minimum and maximum I and J coordinates of a polyiamond drawn from its boundary word and starting at P. Name Imin Imax Jmin Jmax Pi Pj Word tiny 1 3 -1 1 1 0 "21553" bat 0 2 0 2 0 0 "11004343" butterfly 0 3 0 2 1 0 "11504423" club 0 3 0 2 1 0 "11044532" crown 0 3 0 2 1 0 "11045342" hexagon 0 2 0 2 1 0 "105432" lobster 0 2 0 3 1 0 "02055332" pistol 0 2 0 3 1 0 "01045332" rhomboid 0 3 0 1 0 0 "11104443" shoe 0 2 0 2 0 0 "10205433" snake 0 2 0 3 1 0 "01053432" sphinx 0 3 0 2 0 0 "11154533" yacht 0 2 0 2 0 0 "11053533" gort 0 5 0 5 0 0 "111110500043355343123443" boundary_range_test(): Normal end of execution. boundary_reflect_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_reflect() is given a polyiamond boundary word to reflect about the x, y, or xy axis. Graphics saved as "boundary_reflect_test.png" boundary_reflect_test(): Normal end of execution. boundary_representative_test(): boundary_representative() is given a boundary word, and returns the representative of its equivalence class. bat: boundary word: "11004343" base point : [ 0, 0 ] bat representative: boundary word: "00434311" base point : [ 0, 0 ] butterfly: boundary word: "11504423" base point : [ 1, 0 ] butterfly representative: boundary word: "04423115" base point : [ 1, 0 ] club: boundary word: "11044532" base point : [ 1, 0 ] club representative: boundary word: "04453211" base point : [ 1, 0 ] crown: boundary word: "11045342" base point : [ 1, 0 ] crown representative: boundary word: "04534211" base point : [ 1, 0 ] hexagon: boundary word: "105432" base point : [ 1, 0 ] hexagon representative: boundary word: "054321" base point : [ 1, 0 ] lobster: boundary word: "02055332" base point : [ 1, 0 ] lobster representative: boundary word: "02055332" base point : [ 1, 0 ] pistol: boundary word: "01045332" base point : [ 1, 0 ] pistol representative: boundary word: "01045332" base point : [ 1, 0 ] rhomboid: boundary word: "11104443" base point : [ 0, 0 ] rhomboid representative: boundary word: "04443111" base point : [ 0, 0 ] shoe: boundary word: "10205433" base point : [ 0, 0 ] shoe representative: boundary word: "02054331" base point : [ 0, 0 ] snake: boundary word: "01053432" base point : [ 1, 0 ] snake representative: boundary word: "01053432" base point : [ 1, 0 ] sphinx: boundary word: "11154533" base point : [ 0, 0 ] sphinx representative: boundary word: "11154533" base point : [ 0, 0 ] yacht: boundary word: "11053533" base point : [ 0, 0 ] yacht representative: boundary word: "05353311" base point : [ 0, 0 ] boundary_representative_test(): Normal end of execution. boundary_rotate_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_rotate() rotates a polyiamond described by its boundary word. Graphics saved as "boundary_rotate_snake_0.png" Graphics saved as "boundary_rotate_snake_60.png" Graphics saved as "boundary_rotate_snake_120.png" Graphics saved as "boundary_rotate_snake_180.png" Graphics saved as "boundary_rotate_snake_240.png" Graphics saved as "boundary_rotate_snake_300.png" Graphics saved as "boundary_rotate_snake_360.png" boundary_rotate_test(): Normal end of execution. boundary_snap_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_snap() snaps a polyiamond so that it has minimum I and J node coordinates of 0. Graphics saved as "boundary_snap_test.png" boundary_snap_test(): Normal end of execution. boundary_sort_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_sort() is given a polyiamond boundary word and sorts it to have lexically smallest base point. hexagon boundary word (rotated) boundary word: "432105" base point : [ 5, 10 ] sorted hexagon boundary word boundary word: "321054" base point : [ 4, 9 ] snake boundary word boundary word: "01053432" base point : [ 1, 0 ] sorted snake boundary word boundary word: "32010534" base point : [ 0, 1 ] boundary_sort_test() Normal end of execution. boundary_to_edge_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_to_edge() converts a boundary word to an edge list. Tiny example: boundary word boundary word: "21553" base point : [ 1, 0 ] Tiny example: edge list 1: 1 0 2: 2 -1 3: 3 -1 4: 2 0 5: 1 1 6: 1 0 Gort: boundary word boundary word: "111110500043355343123443" base point : [ 0, 0 ] Gort: edge list 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 4 0 6: 5 0 7: 5 1 8: 4 2 9: 4 3 10: 4 4 11: 4 5 12: 3 5 13: 3 4 14: 3 3 15: 2 4 16: 1 5 17: 1 4 18: 0 4 19: 0 3 20: 1 3 21: 2 2 22: 2 1 23: 1 1 24: 0 1 25: 0 0 boundary_to_edge_test(): Normal end of execution. boundary_to_triangle_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_to_triangle() converts a boundary word to a triangle list. Gort boundary word boundary word: "111110500043355343123443" base point : [ 0, 0 ] name = ' Gort triangle list' Gort triangle list 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 boundary_to_triangle_test(): Normal end of execution. boundary_to_vertex_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_to_vertex() converts a boundary word to a vertex list. Gort boundary word boundary word: "111110500043355343123443" base point : [ 0, 0 ] Gort vertex list 1: 0 0 2: 5 0 3: 5 1 4: 4 2 5: 4 5 6: 3 5 7: 3 3 8: 1 5 9: 1 4 10: 0 4 11: 0 3 12: 1 3 13: 2 2 14: 2 1 15: 0 1 boundary_to_vertex_test(): Normal end of execution. boundary_translate_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 boundary_translate() translates a polyiamond described by its boundary word. Graphics saved as "boundary_translate_test.png" boundary_translate_test(): Normal end of execution. edge_hexiamond_test edge_hexiamond() returns the IJ parallelogram point coordinates of the nodes that bound a hexiamond, given its index between 1 and 12. bat 1: 0 0 2: 1 0 3: 2 0 4: 2 1 5: 2 2 6: 1 2 7: 1 1 8: 0 1 butterfly 1: 1 0 2: 2 0 3: 3 0 4: 2 1 5: 2 2 6: 1 2 7: 0 2 8: 1 1 club 1: 1 0 2: 2 0 3: 3 0 4: 3 1 5: 2 1 6: 1 1 7: 0 2 8: 0 1 crown 1: 1 0 2: 2 0 3: 3 0 4: 3 1 5: 2 1 6: 1 2 7: 1 1 8: 0 1 hexagon 1: 1 0 2: 2 0 3: 2 1 4: 1 2 5: 0 2 6: 0 1 lobster 1: 1 0 2: 1 1 3: 2 0 4: 2 1 5: 1 2 6: 0 3 7: 0 2 8: 0 1 pistol 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 2 6: 0 3 7: 0 2 8: 0 1 rhomboid 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 3 1 6: 2 1 7: 1 1 8: 0 1 shoe 1: 0 0 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 1 2 7: 0 2 8: 0 1 snake 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 3 6: 1 2 7: 0 2 8: 0 1 sphinx 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 2 1 6: 1 1 7: 0 2 8: 0 1 yacht 1: 0 0 2: 1 0 3: 2 0 4: 2 1 5: 1 2 6: 1 1 7: 0 2 8: 0 1 edge_hexiamond_test Normal end of execution. edge_plot_test edge_plot() plots a polyiamond from its edge list. Graphics saved as "edge_plot_test.png" edge_plot_test Normal end of execution. edge_range_test edge_range() finds the minimum and maximum I and J coordinates of a polyiamond drawn from its edge list. Name Imin Imax Jmin Jmax tiny 0 2 0 2 bat 0 2 0 2 butterfly 0 3 0 2 club 0 3 0 2 crown 0 3 0 2 hexagon 0 2 0 2 lobster 0 2 0 3 pistol 0 2 0 3 rhomboid 0 3 0 1 shoe 0 2 0 2 snake 0 2 0 3 sphinx 0 3 0 2 yacht 0 2 0 2 gort 0 5 0 5 edge_range_test Normal end of execution. edge_reflect_test edge_reflect() reflects a polyiamond described by its edge list. Graphics saved as "edge_reflect_test.png" edge_reflect_test Normal end of execution. edge_snap_test edge_snap() snaps a polyiamond so that it has minimum I and J node coordinates of 0. Graphics saved as "edge_snap_test.png" edge_snap_test Normal end of execution. edge_sort_test edge_sort() sorts the edge list of a polyiamond. Since the vertices must stay in counterclockwise order, sorting can only rotate the ordering. bat 1: 0 0 2: 1 0 3: 2 0 4: 2 1 5: 2 2 6: 1 2 7: 1 1 8: 0 1 bat (sorted) 1: 0 0 2: 1 0 3: 2 0 4: 2 1 5: 2 2 6: 1 2 7: 1 1 8: 0 1 butterfly 1: 1 0 2: 2 0 3: 3 0 4: 2 1 5: 2 2 6: 1 2 7: 0 2 8: 1 1 butterfly (sorted) 1: 0 2 2: 1 1 3: 1 0 4: 2 0 5: 3 0 6: 2 1 7: 2 2 8: 1 2 club 1: 1 0 2: 2 0 3: 3 0 4: 3 1 5: 2 1 6: 1 1 7: 0 2 8: 0 1 club (sorted) 1: 0 1 2: 1 0 3: 2 0 4: 3 0 5: 3 1 6: 2 1 7: 1 1 8: 0 2 crown 1: 1 0 2: 2 0 3: 3 0 4: 3 1 5: 2 1 6: 1 2 7: 1 1 8: 0 1 crown (sorted) 1: 0 1 2: 1 0 3: 2 0 4: 3 0 5: 3 1 6: 2 1 7: 1 2 8: 1 1 hexagon 1: 1 0 2: 2 0 3: 2 1 4: 1 2 5: 0 2 6: 0 1 hexagon (sorted) 1: 0 1 2: 1 0 3: 2 0 4: 2 1 5: 1 2 6: 0 2 lobster 1: 1 0 2: 1 1 3: 2 0 4: 2 1 5: 1 2 6: 0 3 7: 0 2 8: 0 1 lobster (sorted) 1: 0 1 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 1 2 7: 0 3 8: 0 2 pistol 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 2 6: 0 3 7: 0 2 8: 0 1 pistol (sorted) 1: 0 1 2: 1 0 3: 1 1 4: 2 1 5: 2 2 6: 1 2 7: 0 3 8: 0 2 rhomboid 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 3 1 6: 2 1 7: 1 1 8: 0 1 rhomboid (sorted) 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 3 1 6: 2 1 7: 1 1 8: 0 1 shoe 1: 0 0 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 1 2 7: 0 2 8: 0 1 shoe (sorted) 1: 0 0 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 1 2 7: 0 2 8: 0 1 snake 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 3 6: 1 2 7: 0 2 8: 0 1 snake (sorted) 1: 0 1 2: 1 0 3: 1 1 4: 2 1 5: 2 2 6: 1 3 7: 1 2 8: 0 2 sphinx 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 2 1 6: 1 1 7: 0 2 8: 0 1 sphinx (sorted) 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 2 1 6: 1 1 7: 0 2 8: 0 1 yacht 1: 0 0 2: 1 0 3: 2 0 4: 2 1 5: 1 2 6: 1 1 7: 0 2 8: 0 1 yacht (sorted) 1: 0 0 2: 1 0 3: 2 0 4: 2 1 5: 1 2 6: 1 1 7: 0 2 8: 0 1 edge_sort_test Normal end of execution. edge_to_boundary_test edge_to_boundary() converts an edge list to a boundary list. Tiny edge list 1: 0 1 2: 1 0 3: 2 0 4: 1 1 5: 0 2 Tiny boundary list boundary word: "21553" base point : [ 0, 1 ] Gort edge list 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 4 0 6: 5 0 7: 5 1 8: 4 2 9: 4 3 10: 4 4 11: 4 5 12: 3 5 13: 3 4 14: 3 3 15: 2 4 16: 1 5 17: 1 4 18: 0 4 19: 0 3 20: 1 3 21: 2 2 22: 2 1 23: 1 1 24: 0 1 Gort boundary list boundary word: "111110500043355343123443" base point : [ 0, 0 ] edge_to_boundary_test Normal end of execution. edge_to_triangle_test edge_to_triangle() converts an edge list to a triangle list. Tiny edge list 1: 0 1 2: 1 0 3: 2 0 4: 1 1 5: 0 2 Tiny triangle list 1: 1 1 1 2: 2 1 0 3: 1 2 0 Gort edge list 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 4 0 6: 5 0 7: 5 1 8: 4 2 9: 4 3 10: 4 4 11: 4 5 12: 3 5 13: 3 4 14: 3 3 15: 2 4 16: 1 5 17: 1 4 18: 0 4 19: 0 3 20: 1 3 21: 2 2 22: 2 1 23: 1 1 24: 0 1 Gort triangle list 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 edge_to_triangle_test Normal end of execution. edge_to_vertex_test edge_to_vertex() converts an edge list to a vertex list. Tiny edge list 1: 0 1 2: 1 0 3: 2 0 4: 1 1 5: 0 2 Tiny vertex list 1: 0 1 2: 1 0 3: 2 0 4: 0 2 Gort edge list 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 4 0 6: 5 0 7: 5 1 8: 4 2 9: 4 3 10: 4 4 11: 4 5 12: 3 5 13: 3 4 14: 3 3 15: 2 4 16: 1 5 17: 1 4 18: 0 4 19: 0 3 20: 1 3 21: 2 2 22: 2 1 23: 1 1 24: 0 1 Gort vertex list 1: 0 0 2: 5 0 3: 5 1 4: 4 2 5: 4 5 6: 3 5 7: 3 3 8: 1 5 9: 1 4 10: 0 4 11: 0 3 12: 1 3 13: 2 2 14: 2 1 15: 0 1 edge_to_vertex_test Normal end of execution. edge_translate_test edge_translate() translates a polyiamond described by its edge word. Graphics saved as "edge_translate_test.png" edge_translate_test Normal end of execution. grid_plot_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 grid_plot() plots a grid for polyiamonds. Graphics saved as "grid_plot_test.png" grid_plot_test(): Normal end of execution. i4_wrap_test i4_wrap forces an integer to lie within given limits. ilo = 4 ihi = 8 i i4_wrap(i,ilo,ihi) -10 5 -9 6 -8 7 -7 8 -6 4 -5 5 -4 6 -3 7 -2 8 -1 4 0 5 1 6 2 7 3 8 4 4 5 5 6 6 7 7 8 8 9 4 10 5 11 6 12 7 13 8 14 4 15 5 16 6 17 7 18 8 19 4 20 5 i4vec_lt_test: i4vec_lt determines if V1 is less than V2, using lexical order, for the i4vec data type. V1 and V2: 1: 1 0 2: 2 5 3: 3 10 V1 < V2? = False V1 and V2: 1: 1 1 2: 2 2 3: 3 3 V1 < V2? = False V1 and V2: 1: 1 1 2: 2 3 3: 3 0 V1 < V2? = True i4vec2_print_test i4vec2_print prints a pair of I4VECs I, sum of I, sum of I^2: 1: 0 0 2: 1 1 3: 3 5 4: 6 14 5: 10 30 6: 15 55 7: 21 91 8: 28 140 9: 36 204 10: 45 285 11: 55 385 ij_reflect_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 ij_reflect reflects a point's (i,j) coordinates about I or J axis or both. R: (I2,J2) (X2,Y2) 0: (2,3) (3.500000,2.598076) 1: (-5,3) (-3.500000,2.598076) 2: (5,-3) (3.500000,-2.598076) 3: (-2,-3) (-3.500000,-2.598076) ij_reflect_test Normal end of execution. ij_rotate_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 ij_rotate rotates a point's (i,j) coordinates through R 60 degree turns. R: (I,J) (I2,J2) -6: (2,3) (2,3) -5: (2,3) (5,-2) -4: (2,3) (3,-5) -3: (2,3) (-2,-3) -2: (2,3) (-5,2) -1: (2,3) (-3,5) 0: (2,3) (2,3) 1: (2,3) (5,-2) 2: (2,3) (3,-5) 3: (2,3) (-2,-3) 4: (2,3) (-5,2) 5: (2,3) (-3,5) 6: (2,3) (2,3) ij_rotate_test Normal end of execution. ij_to_xy_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 ij_to_xy converts a point's (i,j) coordinates to (x,y). (I,J) (X,Y) (0,0) (0.000000,0.000000) (1,0) (1.000000,0.000000) (2,0) (2.000000,0.000000) (3,0) (3.000000,0.000000) (4,0) (4.000000,0.000000) (5,0) (5.000000,0.000000) (0,1) (0.500000,0.866025) (1,1) (1.500000,0.866025) (2,1) (2.500000,0.866025) (3,1) (3.500000,0.866025) (4,1) (4.500000,0.866025) (5,1) (5.500000,0.866025) (0,2) (1.000000,1.732051) (1,2) (2.000000,1.732051) (2,2) (3.000000,1.732051) (3,2) (4.000000,1.732051) (4,2) (5.000000,1.732051) (5,2) (6.000000,1.732051) (0,3) (1.500000,2.598076) (1,3) (2.500000,2.598076) (2,3) (3.500000,2.598076) (3,3) (4.500000,2.598076) (4,3) (5.500000,2.598076) (5,3) (6.500000,2.598076) (0,4) (2.000000,3.464102) (1,4) (3.000000,3.464102) (2,4) (4.000000,3.464102) (3,4) (5.000000,3.464102) (4,4) (6.000000,3.464102) (5,4) (7.000000,3.464102) ij_to_xy_test Normal end of execution. ijk_fill_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 ijk_fill plots a triangle given IJK coordinates. Graphics saved as "ijk_fill_test.png" ijk_fill_test(): Normal end of execution. ijk_neighbors_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 ijk_neighbors() returns the neighbors of a triangle. bat triangle 1 ( 1, 1, 0) neighbor 1 ( 1, 0, 1) neighbor 2 ( 1, 1, 1) neighbor 3 ( 0, 1, 1) triangle 2 ( 1, 1, 1) neighbor 1 ( 1, 2, 0) neighbor 2 ( 1, 1, 0) neighbor 3 ( 2, 1, 0) triangle 3 ( 2, 1, 0) neighbor 1 ( 2, 0, 1) neighbor 2 ( 2, 1, 1) neighbor 3 ( 1, 1, 1) triangle 4 ( 2, 1, 1) neighbor 1 ( 2, 2, 0) neighbor 2 ( 2, 1, 0) neighbor 3 ( 3, 1, 0) triangle 5 ( 2, 2, 0) neighbor 1 ( 2, 1, 1) neighbor 2 ( 2, 2, 1) neighbor 3 ( 1, 2, 1) triangle 6 ( 2, 2, 1) neighbor 1 ( 2, 3, 0) neighbor 2 ( 2, 2, 0) neighbor 3 ( 3, 2, 0) ijk_neighbors_test Normal end of execution. ijk_to_ij_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 ijk_to_ij returns the (i,j) coordinates of the vertices of a triangle, given its (i,j,k) coordinates. IJK IJ(1) IJ(2) IJ(3) (1,1,0) (0,0) (1,0) (0,1) (1,1,1) (1,1) (0,1) (1,0) (2,1,0) (1,0) (2,0) (1,1) (2,1,1) (2,1) (1,1) (2,0) (3,1,0) (2,0) (3,0) (2,1) (3,1,1) (3,1) (2,1) (3,0) (4,1,0) (3,0) (4,0) (3,1) (4,1,1) (4,1) (3,1) (4,0) (5,1,0) (4,0) (5,0) (4,1) (5,1,1) (5,1) (4,1) (5,0) (1,2,0) (0,1) (1,1) (0,2) (1,2,1) (1,2) (0,2) (1,1) (2,2,0) (1,1) (2,1) (1,2) (2,2,1) (2,2) (1,2) (2,1) (3,2,0) (2,1) (3,1) (2,2) (3,2,1) (3,2) (2,2) (3,1) (4,2,0) (3,1) (4,1) (3,2) (4,2,1) (4,2) (3,2) (4,1) (5,2,0) (4,1) (5,1) (4,2) (5,2,1) (5,2) (4,2) (5,1) (1,3,0) (0,2) (1,2) (0,3) (1,3,1) (1,3) (0,3) (1,2) (2,3,0) (1,2) (2,2) (1,3) (2,3,1) (2,3) (1,3) (2,2) (3,3,0) (2,2) (3,2) (2,3) (3,3,1) (3,3) (2,3) (3,2) (4,3,0) (3,2) (4,2) (3,3) (4,3,1) (4,3) (3,3) (4,2) (5,3,0) (4,2) (5,2) (4,3) (5,3,1) (5,3) (4,3) (5,2) (1,4,0) (0,3) (1,3) (0,4) (1,4,1) (1,4) (0,4) (1,3) (2,4,0) (1,3) (2,3) (1,4) (2,4,1) (2,4) (1,4) (2,3) (3,4,0) (2,3) (3,3) (2,4) (3,4,1) (3,4) (2,4) (3,3) (4,4,0) (3,3) (4,3) (3,4) (4,4,1) (4,4) (3,4) (4,3) (5,4,0) (4,3) (5,3) (4,4) (5,4,1) (5,4) (4,4) (5,3) ijk_to_ij_test Normal end of execution. ijk_to_xy_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 ijk_to_xy returns the (x,y) vertex coordinates of a triangle, given its (i,j,k) coordinates. (I,J,K) (X1,Y1) (X2,Y2) (X3,Y3) (1,1) (0.000000,0.000000) (1.000000,0.000000) (0.500000,0.866025) (1,1) (1.500000,0.866025) (0.500000,0.866025) (1.000000,0.000000) (2,1) (1.000000,0.000000) (2.000000,0.000000) (1.500000,0.866025) (2,1) (2.500000,0.866025) (1.500000,0.866025) (2.000000,0.000000) (3,1) (2.000000,0.000000) (3.000000,0.000000) (2.500000,0.866025) (3,1) (3.500000,0.866025) (2.500000,0.866025) (3.000000,0.000000) (4,1) (3.000000,0.000000) (4.000000,0.000000) (3.500000,0.866025) (4,1) (4.500000,0.866025) (3.500000,0.866025) (4.000000,0.000000) (5,1) (4.000000,0.000000) (5.000000,0.000000) (4.500000,0.866025) (5,1) (5.500000,0.866025) (4.500000,0.866025) (5.000000,0.000000) (1,2) (0.500000,0.866025) (1.500000,0.866025) (1.000000,1.732051) (1,2) (2.000000,1.732051) (1.000000,1.732051) (1.500000,0.866025) (2,2) (1.500000,0.866025) (2.500000,0.866025) (2.000000,1.732051) (2,2) (3.000000,1.732051) (2.000000,1.732051) (2.500000,0.866025) (3,2) (2.500000,0.866025) (3.500000,0.866025) (3.000000,1.732051) (3,2) (4.000000,1.732051) (3.000000,1.732051) (3.500000,0.866025) (4,2) (3.500000,0.866025) (4.500000,0.866025) (4.000000,1.732051) (4,2) (5.000000,1.732051) (4.000000,1.732051) (4.500000,0.866025) (5,2) (4.500000,0.866025) (5.500000,0.866025) (5.000000,1.732051) (5,2) (6.000000,1.732051) (5.000000,1.732051) (5.500000,0.866025) (1,3) (1.000000,1.732051) (2.000000,1.732051) (1.500000,2.598076) (1,3) (2.500000,2.598076) (1.500000,2.598076) (2.000000,1.732051) (2,3) (2.000000,1.732051) (3.000000,1.732051) (2.500000,2.598076) (2,3) (3.500000,2.598076) (2.500000,2.598076) (3.000000,1.732051) (3,3) (3.000000,1.732051) (4.000000,1.732051) (3.500000,2.598076) (3,3) (4.500000,2.598076) (3.500000,2.598076) (4.000000,1.732051) (4,3) (4.000000,1.732051) (5.000000,1.732051) (4.500000,2.598076) (4,3) (5.500000,2.598076) (4.500000,2.598076) (5.000000,1.732051) (5,3) (5.000000,1.732051) (6.000000,1.732051) (5.500000,2.598076) (5,3) (6.500000,2.598076) (5.500000,2.598076) (6.000000,1.732051) (1,4) (1.500000,2.598076) (2.500000,2.598076) (2.000000,3.464102) (1,4) (3.000000,3.464102) (2.000000,3.464102) (2.500000,2.598076) (2,4) (2.500000,2.598076) (3.500000,2.598076) (3.000000,3.464102) (2,4) (4.000000,3.464102) (3.000000,3.464102) (3.500000,2.598076) (3,4) (3.500000,2.598076) (4.500000,2.598076) (4.000000,3.464102) (3,4) (5.000000,3.464102) (4.000000,3.464102) (4.500000,2.598076) (4,4) (4.500000,2.598076) (5.500000,2.598076) (5.000000,3.464102) (4,4) (6.000000,3.464102) (5.000000,3.464102) (5.500000,2.598076) (5,4) (5.500000,2.598076) (6.500000,2.598076) (6.000000,3.464102) (5,4) (7.000000,3.464102) (6.000000,3.464102) (6.500000,2.598076) ijk_to_xy_test Normal end of execution. name_hexiamond_test name_hexiamond() returns the "name" of a hexiamond, given its index between 1 and 12. Index Name 0 "?" 1 "bat" 2 "butterfly" 3 "club" 4 "crown" 5 "hexagon" 6 "lobster" 7 "pistol" 8 "rhomboid" 9 "shoe" 10 "snake" 11 "sphinx" 12 "yacht" 13 "?" name_hexiamond_test Normal end of execution. polyiamond_free_enumerate_test: polyiamond_free_enumerate() returns counts of the number of free polyiamonds. Order Number 0 1 1 1 2 1 3 1 4 3 5 4 6 12 7 24 8 66 9 160 10 448 11 1186 12 3334 13 9235 14 26166 15 73983 16 211297 17 604107 18 1736328 19 5000593 20 14448984 21 41835738 22 121419260 23 353045291 24 1028452717 25 3000800627 26 8769216722 27 25661961898 28 75195166667 29 220605519559 30 647943626796 polyiamond_free_enumerate_test: Normal end of execution. s_escape_tex_test s_escape_tex "protects" characters in a string that might otherwise be interpreted as TeX escape characters. Original string: "The file A_B.TXT is {I think__so} of size 2^8 or C\B.". De-escaped string: "ThefileA\_B.TXTis\{Ithink\_\_so\}ofsize2\^8orC\\B.". triangle_contains_ijk_test triangle_contains_ijk() reports whether a triangle is in a region specified by a triangle list. bat 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 2 2 0 6: 2 2 1 triangle 1 ( 1, 1, 0) internal neighbor 2 ( 1, 1, 1) triangle 2 ( 1, 1, 1) internal neighbor 2 ( 1, 1, 0) internal neighbor 3 ( 2, 1, 0) triangle 3 ( 2, 1, 0) internal neighbor 2 ( 2, 1, 1) internal neighbor 3 ( 1, 1, 1) triangle 4 ( 2, 1, 1) internal neighbor 1 ( 2, 2, 0) internal neighbor 2 ( 2, 1, 0) triangle 5 ( 2, 2, 0) internal neighbor 1 ( 2, 1, 1) internal neighbor 2 ( 2, 2, 1) triangle 6 ( 2, 2, 1) internal neighbor 2 ( 2, 2, 0) triangle_contains_ijk_test Normal end of execution. triangle_hexiamond_test triangle_hexiamond() returns the IJK parallelogram triangle coordinates of the triangles that make up a hexiamond, given its index between 1 and 12. bat 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 2 2 0 6: 2 2 1 butterfly 1: 2 1 0 2: 2 1 1 3: 3 1 0 4: 1 2 1 5: 2 2 0 6: 2 2 1 club 1: 1 1 1 2: 2 1 0 3: 2 1 1 4: 3 1 0 5: 3 1 1 6: 1 2 0 crown 1: 1 1 1 2: 2 1 0 3: 2 1 1 4: 3 1 0 5: 3 1 1 6: 2 2 0 hexagon 1: 1 1 1 2: 2 1 0 3: 2 1 1 4: 1 2 0 5: 1 2 1 6: 2 2 0 lobster 1: 1 1 1 2: 1 2 1 3: 1 2 0 4: 2 1 1 5: 2 2 0 6: 1 3 0 pistol 1: 1 1 1 2: 1 2 0 3: 1 2 1 4: 2 2 0 5: 2 2 1 6: 1 3 0 rhomboid 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 shoe 1: 1 1 0 2: 1 1 1 3: 1 2 1 4: 1 2 0 5: 2 2 0 6: 2 1 1 snake 1: 1 1 1 2: 1 2 0 3: 1 2 1 4: 2 2 0 5: 2 2 1 6: 2 3 0 sphinx 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 1 2 0 yacht 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 1 2 0 6: 2 2 0 triangle_hexiamond_test Normal end of execution. triangle_ijk_order_test triangle_ijk_order() finds the occurrence of a given ijk triangle in a triangle list. Gort triangle list: 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 IJK Row Order ( 3, 4, 0) 25 25 ( 2, 5, 0) 28 28 ( 2, 1, 1) 4 4 ( 2, 5, 0) 28 28 ( 4, 3, 0) 19 19 ( 2, 1, 0) 3 3 ( 5, 1, 0) 9 9 ( 3, 3, 0) 17 17 ( 4, 5, 0) 29 29 ( 4, 5, 0) 29 29 ( 1, 5, 0) 0 0 triangle_ijk_order_test Normal end of execution. triangle_parity_test triangle_parity() prints the parity of a polyiamond from its triangle list. Name Size Parity bat 6 0 butterfly 6 0 club 6 0 crown 6 0 hexagon 6 0 lobster 6 0 pistol 6 0 rhomboid 6 0 shoe 6 0 snake 6 0 sphinx 6 -2 yacht 6 -2 gort 30 -2 triangle_parity_test Normal end of execution. triangle_plot_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 triangle_plot() plots a polyiamond from its triangle list. Graphics saved as "triangle_plot_test_gort.png" Graphics saved as "triangle_plot_test_bat.png" Graphics saved as "triangle_plot_test_butterfly.png" Graphics saved as "triangle_plot_test_club.png" Graphics saved as "triangle_plot_test_crown.png" Graphics saved as "triangle_plot_test_hexagon.png" Graphics saved as "triangle_plot_test_lobster.png" Graphics saved as "triangle_plot_test_pistol.png" Graphics saved as "triangle_plot_test_rhomboid.png" Graphics saved as "triangle_plot_test_shoe.png" Graphics saved as "triangle_plot_test_snake.png" Graphics saved as "triangle_plot_test_sphinx.png" Graphics saved as "triangle_plot_test_yacht.png" triangle_plot_test Normal end of execution. triangle_print_test triangle_print() prints a polyiamond from its triangles. bat 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 2 2 0 6: 2 2 1 crown 1: 1 1 1 2: 2 1 0 3: 2 1 1 4: 3 1 0 5: 3 1 1 6: 2 2 0 pistol 1: 1 1 1 2: 1 2 0 3: 1 2 1 4: 2 2 0 5: 2 2 1 6: 1 3 0 snake 1: 1 1 1 2: 1 2 0 3: 1 2 1 4: 2 2 0 5: 2 2 1 6: 2 3 0 triangle_print_test Normal end of execution. triangle_range_test triangle_range() finds the minimum and maximum I and J coordinates of a polyiamond drawn from its triangle list. Name Imin Imax Jmin jmax tiny 0 2 0 2 bat 0 2 0 2 butterfly 0 3 0 2 club 0 3 0 2 crown 0 3 0 2 hexagon 0 2 0 2 lobster 0 2 0 3 pistol 0 2 0 3 rhomboid 0 3 0 1 shoe 0 2 0 2 snake 0 2 0 3 sphinx 0 3 0 2 yacht 0 2 0 2 gort 0 5 0 5 triangle_range_test Normal end of execution. triangle_reflect_test triangle_reflect() reflects a polyiamond that is described by a triangle list. Graphics saved as "triangle_reflect_test.png" triangle_reflect Normal end of execution. triangle_snap_test triangle_snap() snaps a polyiamond so that it has minimum I and J node coordinates of 0. Graphics saved as "triangle_snap_test.png" triangle_snap_test Normal end of execution. triangle_sort_test triangle_sort() sorts the triangle list of a polyiamond. Gort: unsorted triangle list: 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 Gort: sorted triangle list: 1: 1 1 0 2: 1 1 1 3: 1 4 0 4: 1 4 1 5: 2 1 0 6: 2 1 1 7: 2 3 1 8: 2 4 0 9: 2 4 1 10: 2 5 0 11: 3 1 0 12: 3 1 1 13: 3 2 0 14: 3 2 1 15: 3 3 0 16: 3 3 1 17: 3 4 0 18: 4 1 0 19: 4 1 1 20: 4 2 0 21: 4 2 1 22: 4 3 0 23: 4 3 1 24: 4 4 0 25: 4 4 1 26: 4 5 0 27: 4 5 1 28: 5 1 0 29: 5 1 1 30: 5 2 0 triangle_sort_test Normal end of execution. triangle_to_boundary_test triangle_to_boundary() converts a triangle list to an boundary word. Tiny example: triangle list 1: 1 1 1 2: 2 1 0 3: 1 2 0 Tiny example: boundary word boundary word: "21553" base point : [ 0, 1 ] Gort: triangle list 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 Gort: boundary word boundary word: "111110500043355343123443" base point : [ 0, 0 ] triangle_to_boundary_test Normal end of execution. triangle_to_edge_test triangle_to_edge() converts a triangle list to an edge list. Tiny example: triangle list 1: 1 1 1 2: 2 1 0 3: 1 2 0 Tiny example: edge list 1: 0 1 2: 1 0 3: 2 0 4: 1 1 5: 0 2 Gort: triangle list 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 Gort: edge list 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 4 0 6: 5 0 7: 5 1 8: 4 2 9: 4 3 10: 4 4 11: 4 5 12: 3 5 13: 3 4 14: 3 3 15: 2 4 16: 1 5 17: 1 4 18: 0 4 19: 0 3 20: 1 3 21: 2 2 22: 2 1 23: 1 1 24: 0 1 triangle_to_edge_test Normal end of execution. triangle_to_vertex_test triangle_to_vertex() converts a triangle list to a vertex list. Tiny example: triangle list 1: 1 1 1 2: 2 1 0 3: 1 2 0 Tiny example: vertex list 1: 0 1 2: 1 0 3: 2 0 4: 0 2 Gort: triangle list 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 Gort: vertex list 1: 0 0 2: 5 0 3: 5 1 4: 4 2 5: 4 5 6: 3 5 7: 3 3 8: 1 5 9: 1 4 10: 0 4 11: 0 3 12: 1 3 13: 2 2 14: 2 1 15: 0 1 triangle_to_vertex_test Normal end of execution. triangle_translate_test triangle_translate() translates a polyiamond described by its triangle word. Graphics saved as "triangle_translate_test.png" triangle_translate_test Normal end of execution. vertex_contains_ijk_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_contains_ijk() reports whether an IJK triangle is inside a polygonal region with given vertex list. Gort vertex list 1: 0 0 2: 5 0 3: 5 1 4: 4 2 5: 4 5 6: 3 5 7: 3 3 8: 1 5 9: 1 4 10: 0 4 11: 0 3 12: 1 3 13: 2 2 14: 2 1 15: 0 1 i j k inside? 1 1 0 True 1 1 1 True 2 1 0 True 2 1 1 True 3 1 0 True 3 1 1 True 4 1 0 True 4 1 1 True 5 1 0 True 5 1 1 True 1 2 0 False 1 2 1 False 2 2 0 False 2 2 1 False 3 2 0 True 3 2 1 True 4 2 0 True 4 2 1 True 5 2 0 True 5 2 1 False 1 3 0 False 1 3 1 False 2 3 0 False 2 3 1 True 3 3 0 True 3 3 1 True 4 3 0 True 4 3 1 True 5 3 0 False 5 3 1 False 1 4 0 True 1 4 1 True 2 4 0 True 2 4 1 True 3 4 0 True 3 4 1 False 4 4 0 True 4 4 1 True 5 4 0 False 5 4 1 False 1 5 0 False 1 5 1 False 2 5 0 True 2 5 1 False 3 5 0 False 3 5 1 False 4 5 0 True 4 5 1 True 5 5 0 False 5 5 1 False vertex_contains_ijk_test Normal end of execution. vertex_contains_point vertex_contains_point() is given a vertex list, and determines if a point is inside the polyiamond. Polygon vertex list: 1: 0 0 2: 1 0 3: 2 1 4: 1 2 5: 0 2 P Inside? 1.000000 1.000000 True 3.000000 4.000000 False 0.000000 2.000000 False 0.500000 -0.250000 False vertex_contains_point_test Normal end of execution. vertex_hexiamond_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_hexiamond() returns the IJ parallelogram point coordinates of the vertices that bound a hexiamond, given its index between 1 and 12. bat 1: 0 0 2: 2 0 3: 2 2 4: 1 2 5: 1 1 6: 0 1 butterfly 1: 1 0 2: 3 0 3: 2 1 4: 2 2 5: 0 2 6: 1 1 club 1: 1 0 2: 3 0 3: 3 1 4: 1 1 5: 0 2 6: 0 1 crown 1: 1 0 2: 3 0 3: 3 1 4: 2 1 5: 1 2 6: 1 1 7: 0 1 hexagon 1: 1 0 2: 2 0 3: 2 1 4: 1 2 5: 0 2 6: 0 1 lobster 1: 1 0 2: 1 1 3: 2 0 4: 2 1 5: 0 3 6: 0 1 pistol 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 2 6: 0 3 7: 0 1 rhomboid 1: 0 0 2: 3 0 3: 3 1 4: 0 1 shoe 1: 0 0 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 1 2 7: 0 2 snake 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 3 6: 1 2 7: 0 2 8: 0 1 sphinx 1: 0 0 2: 3 0 3: 2 1 4: 1 1 5: 0 2 yacht 1: 0 0 2: 2 0 3: 2 1 4: 1 2 5: 1 1 6: 0 2 vertex_hexiamond_test Normal end of execution. vertex_plot_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_plot() plots a polyiamond from its vertex list. Graphics saved as "vertex_plot_test.png" vertex_plot_test Normal end of execution. vertex_print_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_print() prints the vertex list of a polyiamond. bat 1: 0 0 2: 2 0 3: 2 2 4: 1 2 5: 1 1 6: 0 1 crown 1: 1 0 2: 3 0 3: 3 1 4: 2 1 5: 1 2 6: 1 1 7: 0 1 pistol 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 2 6: 0 3 7: 0 1 snake 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 3 6: 1 2 7: 0 2 8: 0 1 vertex_print_test Normal end of execution. vertex_range_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_range() finds the minimum and maximum I and J coordinates of a polyiamond drawn from its vertex list. Name Imin Imax Jmin Jmax tiny 0 2 0 2 bat 0 2 0 2 butterfly 0 3 0 2 club 0 3 0 2 crown 0 3 0 2 hexagon 0 2 0 2 lobster 0 2 0 3 pistol 0 2 0 3 rhomboid 0 3 0 1 shoe 0 2 0 2 snake 0 2 0 3 sphinx 0 3 0 2 yacht 0 2 0 2 gort 0 5 0 5 vertex_range_test Normal end of execution. vertex_reflect_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_reflect() reflects a polyiamond described by its vertex list. Graphics saved as "vertex_reflect_test.png" vertex_reflect_test Normal end of execution. vertex_snap_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_snap() snaps a polyiamond so that it has minimum I and J node coordinates of 0. Graphics saved as "vertex_snap_test.png" vertex_snap_test Normal end of execution. vertex_sort_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_sort() sorts the vertex list of a polyiamond. Since the vertices must stay in counterclockwise order, sorting can only rotate the ordering. bat 1: 0 0 2: 2 0 3: 2 2 4: 1 2 5: 1 1 6: 0 1 bat (sorted) 1: 0 0 2: 2 0 3: 2 2 4: 1 2 5: 1 1 6: 0 1 butterfly 1: 1 0 2: 3 0 3: 2 1 4: 2 2 5: 0 2 6: 1 1 butterfly (sorted) 1: 0 2 2: 1 1 3: 1 0 4: 3 0 5: 2 1 6: 2 2 club 1: 1 0 2: 3 0 3: 3 1 4: 1 1 5: 0 2 6: 0 1 club (sorted) 1: 0 1 2: 1 0 3: 3 0 4: 3 1 5: 1 1 6: 0 2 crown 1: 1 0 2: 3 0 3: 3 1 4: 2 1 5: 1 2 6: 1 1 7: 0 1 crown (sorted) 1: 0 1 2: 1 0 3: 3 0 4: 3 1 5: 2 1 6: 1 2 7: 1 1 hexagon 1: 1 0 2: 2 0 3: 2 1 4: 1 2 5: 0 2 6: 0 1 hexagon (sorted) 1: 0 1 2: 1 0 3: 2 0 4: 2 1 5: 1 2 6: 0 2 lobster 1: 1 0 2: 1 1 3: 2 0 4: 2 1 5: 0 3 6: 0 1 lobster (sorted) 1: 0 1 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 0 3 pistol 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 2 6: 0 3 7: 0 1 pistol (sorted) 1: 0 1 2: 1 0 3: 1 1 4: 2 1 5: 2 2 6: 1 2 7: 0 3 rhomboid 1: 0 0 2: 3 0 3: 3 1 4: 0 1 rhomboid (sorted) 1: 0 0 2: 3 0 3: 3 1 4: 0 1 shoe 1: 0 0 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 1 2 7: 0 2 shoe (sorted) 1: 0 0 2: 1 0 3: 1 1 4: 2 0 5: 2 1 6: 1 2 7: 0 2 snake 1: 1 0 2: 1 1 3: 2 1 4: 2 2 5: 1 3 6: 1 2 7: 0 2 8: 0 1 snake (sorted) 1: 0 1 2: 1 0 3: 1 1 4: 2 1 5: 2 2 6: 1 3 7: 1 2 8: 0 2 sphinx 1: 0 0 2: 3 0 3: 2 1 4: 1 1 5: 0 2 sphinx (sorted) 1: 0 0 2: 3 0 3: 2 1 4: 1 1 5: 0 2 yacht 1: 0 0 2: 2 0 3: 2 1 4: 1 2 5: 1 1 6: 0 2 yacht (sorted) 1: 0 0 2: 2 0 3: 2 1 4: 1 2 5: 1 1 6: 0 2 vertex_sort_test Normal end of execution. vertex_to_boundary_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_to_boundary() converts a vertex list to a boundary word. Gort vertex list 1: 0 0 2: 5 0 3: 5 1 4: 4 2 5: 4 5 6: 3 5 7: 3 3 8: 1 5 9: 1 4 10: 0 4 11: 0 3 12: 1 3 13: 2 2 14: 2 1 15: 0 1 Gort boundary boundary word: "111110500043355343123443" base point : [ 0, 0 ] vertex_to_boundary_test Normal end of execution. vertex_to_edge_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_to_edge() converts a vertex list to an edge list. Tiny vertex list 1: 0 1 2: 1 0 3: 2 0 4: 0 2 Tiny edge list 1: 0 1 2: 1 0 3: 2 0 4: 1 1 5: 0 2 Gort vertex list 1: 0 0 2: 5 0 3: 5 1 4: 4 2 5: 4 5 6: 3 5 7: 3 3 8: 1 5 9: 1 4 10: 0 4 11: 0 3 12: 1 3 13: 2 2 14: 2 1 15: 0 1 Gort edge list 1: 0 0 2: 1 0 3: 2 0 4: 3 0 5: 4 0 6: 5 0 7: 5 1 8: 4 2 9: 4 3 10: 4 4 11: 4 5 12: 3 5 13: 3 4 14: 3 3 15: 2 4 16: 1 5 17: 1 4 18: 0 4 19: 0 3 20: 1 3 21: 2 2 22: 2 1 23: 1 1 24: 0 1 vertex_to_edge_test Normal end of execution. vertex_to_triangle_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_to_triangle() converts a vertex list to a triangle list. Gort vertex list 1: 0 0 2: 5 0 3: 5 1 4: 4 2 5: 4 5 6: 3 5 7: 3 3 8: 1 5 9: 1 4 10: 0 4 11: 0 3 12: 1 3 13: 2 2 14: 2 1 15: 0 1 Gort triangle_list 1: 1 1 0 2: 1 1 1 3: 2 1 0 4: 2 1 1 5: 3 1 0 6: 3 1 1 7: 4 1 0 8: 4 1 1 9: 5 1 0 10: 5 1 1 11: 3 2 0 12: 3 2 1 13: 4 2 0 14: 4 2 1 15: 5 2 0 16: 2 3 1 17: 3 3 0 18: 3 3 1 19: 4 3 0 20: 4 3 1 21: 1 4 0 22: 1 4 1 23: 2 4 0 24: 2 4 1 25: 3 4 0 26: 4 4 0 27: 4 4 1 28: 2 5 0 29: 4 5 0 30: 4 5 1 vertex_to_triangle_test Normal end of execution. vertex_translate_test MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 vertex_translate() translates a polyiamond described by its vertex word. Graphics saved as "vertex_translate_test.png" vertex_translate_test Normal end of execution. xy_to_ij_test(): MATLAB/Octave version 9.8.0.1380330 (R2020a) Update 2 xy_to_ij converts a point's (x,y) coordinates to (i,j). (X,Y) (I,J) (0.000000,0.000000) (0.000000,0.000000) (1.000000,0.000000) (1.000000,0.000000) (2.000000,0.000000) (2.000000,0.000000) (3.000000,0.000000) (3.000000,0.000000) (4.000000,0.000000) (4.000000,0.000000) (5.000000,0.000000) (5.000000,0.000000) (0.500000,0.866025) (0.000000,1.000000) (1.500000,0.866025) (1.000000,1.000000) (2.500000,0.866025) (2.000000,1.000000) (3.500000,0.866025) (3.000000,1.000000) (4.500000,0.866025) (4.000000,1.000000) (5.500000,0.866025) (5.000000,1.000000) (1.000000,1.732051) (0.000000,2.000000) (2.000000,1.732051) (1.000000,2.000000) (3.000000,1.732051) (2.000000,2.000000) (4.000000,1.732051) (3.000000,2.000000) (5.000000,1.732051) (4.000000,2.000000) (6.000000,1.732051) (5.000000,2.000000) (1.500000,2.598076) (-0.000000,3.000000) (2.500000,2.598076) (1.000000,3.000000) (3.500000,2.598076) (2.000000,3.000000) (4.500000,2.598076) (3.000000,3.000000) (5.500000,2.598076) (4.000000,3.000000) (6.500000,2.598076) (5.000000,3.000000) (2.000000,3.464102) (0.000000,4.000000) (3.000000,3.464102) (1.000000,4.000000) (4.000000,3.464102) (2.000000,4.000000) (5.000000,3.464102) (3.000000,4.000000) (6.000000,3.464102) (4.000000,4.000000) (7.000000,3.464102) (5.000000,4.000000) xy_to_ij_test(): Normal end of execution. polyiamonds_test(): Normal end of execution. 08-Jan-2022 08:57:48