Source code

Source code is in C, unless otherwise specified.

Maps and map projections. Makes outline maps (in PostScript) for any part of the world in any of 40-odd projections. Includes map data derived from US government sources. 500KB gzipped tar file. Licensed for noncommercial use only. Under reconstruction, hopefully back by March 2012

Higher resolution map data from government sources, for use with the mapping software. 6MB gzipped tar file.

Suffix arrays. Functions for making suffix arrays, a simple data structure useful for text retrieval, plagiarism detection, DNA analysis, data compression, etc.

Antiquicksort. Forces quadratic behavior from most any C-standard qsort implemented by quicksort--even if randomized. For a pertinent paper, see ``A killer adversary for quicksort'', gzipped postscript or pdf.

Quicksort. Efficient code from J. L. Bentley and M. D. McIlroy, "Engineering a sort function", Software--Practice and Experience 23 (1993) 1249-1265.

Data compression C source tarball of Bentley's implementation of J. Bentley and D. McIlroy, "Data compression with long repeated strings", Information Sciences 135 (2001) 1-11.

Word-square generator. Makes all possible word squares from a given list of words. Does the same for general crossword puzzles, but the enumeration algorithm is not really suited for this usually less tightly constrained problem. Nice squares discovered by the program appear in various Word Ways articles listed in my bibliography.

Regular-language generator Parses a regular expressions and enumerates the strings of the language it defines. An avatar of lazy evaluation. Haskell.

Doug McIlroy's home page
Last modified Nov 22, 2011.