###################################################################### # # README # FOR # GENARRAYS version 2.0 # ##################################################################### Genarrays searches for Roman-k generating arrays, as described by Matt Ollis. Roman-k generating arrays can be used to generate Roman-k Latin squares. For more information, see enclosed genarrays.pdf file. Usage: A generating array is an NxM array, where each element has an x and y coordinate (such as '(1,0)'). 'Length' refers to the number of elements per row, and 'width' refers to number of rows. The width should be chosen to be a divisor of the length. M value corresponds to the 'k' in Roman-k (this is because we use the notion of an "m table" when dealing with generating arrays. Usage should be clear with these notes when reading the on-screen prompts. Note that as the width increases, the number of calculations required (and arrays found) grows factorially. This results in long runtimes and massive save files. The user may specify any of two command line arguments when executing genarrays. These options are 'v' for verbose mode, or 'd' for debug mode, and would look like this: $ ./genarrays v d Verbose mode is particularly useful if the user is just interested in finding a single array, since it will be output to the terminal as soon as it's found. Debug mode will allow the user to examine the sequence array if they suspect something's going wrong. Known Bugs: 1. Version 2.0 currently does not properly deal with file names greater than 15 characters. This runs the risk of a serious buffer-overflow attack. 2. Command line arguments are not properly "cleaned", so something like $ ./genarrays vole die will still activate verbose and debug mode.