LZ77 general-purpose compressor code


git-svn-id: svn://svn.tartarus.org/sgt@782 cda61777-01e9-0310-a592-d414129be87e
Integer square and cube root algorithms


git-svn-id: svn://svn.tartarus.org/sgt@783 cda61777-01e9-0310-a592-d414129be87e
A juggling graph generator using Paul Cook's graph reduction algorithm


git-svn-id: svn://svn.tartarus.org/sgt@784 cda61777-01e9-0310-a592-d414129be87e
Array mapping unsigned char values to C string-syntax representations


git-svn-id: svn://svn.tartarus.org/sgt@785 cda61777-01e9-0310-a592-d414129be87e
Oops - quote and backslash need to be escaped :-)


git-svn-id: svn://svn.tartarus.org/sgt@786 cda61777-01e9-0310-a592-d414129be87e
Date handling code, including bank holiday calculation


git-svn-id: svn://svn.tartarus.org/sgt@787 cda61777-01e9-0310-a592-d414129be87e
LD_PRELOAD hack to perform local hostname aliasing


git-svn-id: svn://svn.tartarus.org/sgt@788 cda61777-01e9-0310-a592-d414129be87e
Silly script to convert text into a fridge-poetry simulacrum


git-svn-id: svn://svn.tartarus.org/sgt@789 cda61777-01e9-0310-a592-d414129be87e
Polish up square and cube root code


git-svn-id: svn://svn.tartarus.org/sgt@794 cda61777-01e9-0310-a592-d414129be87e
Implementation of my cumulative frequency table algorithm


git-svn-id: svn://svn.tartarus.org/sgt@876 cda61777-01e9-0310-a592-d414129be87e
Unix socket communications utility. Documentation given in file header.


git-svn-id: svn://svn.tartarus.org/sgt@897 cda61777-01e9-0310-a592-d414129be87e
Implementation of counted 2-3-4 trees. Supports sorted trees (lookup
and deletion by key or by index, insertion by key) and unsorted
trees (lookup, insertion and deletion by index only). In sorted
trees, supports relative lookups (find me the smallest thing >= this
or < that).


git-svn-id: svn://svn.tartarus.org/sgt@1028 cda61777-01e9-0310-a592-d414129be87e
Add the frequency->character lookup routine.


git-svn-id: svn://svn.tartarus.org/sgt@1059 cda61777-01e9-0310-a592-d414129be87e
Minor fixes: make countnode234 return zero for a null node (was
causing delpos234(emptytree, 0) to segfault instead of politely
returning NULL), and remove an unused variable.


git-svn-id: svn://svn.tartarus.org/sgt@1060 cda61777-01e9-0310-a592-d414129be87e
Added a copyright statement. You never know :-/


git-svn-id: svn://svn.tartarus.org/sgt@1062 cda61777-01e9-0310-a592-d414129be87e
Add locking and better command line options.


git-svn-id: svn://svn.tartarus.org/sgt@1066 cda61777-01e9-0310-a592-d414129be87e
Add log-time split234 and join234 functions, with full tests. Also
added copytree234 (useful in testing but probably also useful to
users). Unsorted counted 2-3-4 trees now do _all_ the efficient
operations of both linked lists and arrays, in log time. Woohoo!


git-svn-id: svn://svn.tartarus.org/sgt@1067 cda61777-01e9-0310-a592-d414129be87e
Fix a gaping hole in the split algorithm. The deletion transforms on
the way down the tree were ensuring each node was non-small as we
reached it, but each one was then able to _become_ small again when
the deletion transforms one level down took an element out of it for
merging. We now have a much more extensive set of transforms which I
think guarantees to leave an unbroken line of non-small nodes from
root to leaf (not including root). It needs thorough testing though,
and first we need to work out _how_ to test it thoroughly :-/


git-svn-id: svn://svn.tartarus.org/sgt@1069 cda61777-01e9-0310-a592-d414129be87e
For more convenient diagnostics, reduce all test strings to one
character and print them always as %s instead of %p.


git-svn-id: svn://svn.tartarus.org/sgt@1072 cda61777-01e9-0310-a592-d414129be87e
For diagnostic purposes: code to display a graphical representation
of a 2-3-4 tree.


git-svn-id: svn://svn.tartarus.org/sgt@1073 cda61777-01e9-0310-a592-d414129be87e