Last modified: 10:57:53, Wed 14 Nov 2001 UTC

[ (up) ] [ epsmerge/ ] [ epssplit/ ] [ xalcove ]


One draws from the well
Without hindrance
It is dependable
Supreme good fortune

Software

Most of the software I have written for and during my research is completely useless to anyone but myself (as an example, I have included the XAlcove program here). However, I occasionally needed to solve a problem that apparently no-one else had solved (at least not with free software). Consequently, there are some things here that other people also have found useful.

Standard disclaimer/excuse: I haven't really had time to work on this as much as I could/should/would (delete as applicable); since my job description contains the word ``mathematics'' (it doesn't actually, it is rather more specific), I have been doing that, leaving programming and things as a spare-time project.

Actually properly useful things

As a general rule, all things that you find here are distributed under the GNU General Public License. It means that the software is distributed without any warranty etc., and that is it free and that you can't make it un-free. OK?

epsmerge: A program for merging EPS (Encapsulated Postscript) files.
epssplit: A program for doing the exact opposite of epsmerge (useful for printing posters, for example).
Quickhack, a utility for sticking an EPS file (such as a logo) onto every page of a postscript document. Can be used as a pipe. It's a bit of a hack, though, (hence the name) but it works for me.

Also in the useful category is a C function for doing partial traces on matrices and tensors. It comes with a glue function for glueing it into Matlab. This thing is distributed under a BSD license.

FileSizeMD5 sum
ptrace.tar.gz8.05K87a196190f91b3deb2c1b9d0b6958e60

Fun things

Well, I think so anyway.

Here is a program in Emacs Lisp that does a breadth-first search within a search space. All you have to do is to say what you are looking for and what rules is used for the search, and where you start. You need to know some Emacs Lisp to write the rules, but an example is included (the "water-jug" problem). It returns the path to the first solution, but can "easily" be modified to search the space exhaustively.
It is pretty clever about avoiding unnecessary cons'ing and recursions (at the cost of readability, perhaps!) and mostly avoids non-ELisp constructions (although Emacs has rather good CLisp support these days).
It doesn't (at the moment) have any checks against infinite searches (For one thing, it doesn't use recursion; Emacs checks recursion levels). It wouldn't be difficult to add, though.

Emacs lisp: bf-search.el
A Common Lisp version: bf-search.lisp

The Common Lisp version is a strongly improved version; it can just find the best solution, or search a (finite) space exhaustively and return solutions sorted by goodness, and it can check against infinte recursion. Still doesn't use hashes for the lookup, though.

Then there is a caml version: the searching is done in bfsearch.ml, and you can then test it with the water-jug problem water-jug.ml.

Finally, there is a C++ version which does use hashing. It uses STL, which, in my humble opinion, is the best excuse for using C++ in smaller projects. It was designed to be threadable eventually, but since the problems I had to solve didn't really need threading, I haven't actually built it in yet. This thing is also under a BSD license.

FileSizeMD5 sum
bfsearch.tar.gz9.52Kc52ebcae2c4106919bcb87f4defab164

Hairy, scary, technical things

If you don't know what the description means then you definitely (alright, probably) do not want to look at these programs!

XAlcove: a program for doing very, very, technical computations with SL3 tilting modules, in an attempt to figure out what they look like. Subject of my thesis, among other things.
tilting.pl: a Perl script for calculating the decomposition multiplicities of tensor powers of the standard module for SL3 with respect to non-projective (and tilting) summands.


Postscript is a trademark of Adobe Systems, Inc.
Matlab is a trademark of The MathWorks, Inc


[ (up) ] [ epsmerge/ ] [ epssplit/ ] [ xalcove ]