Bob Jenkins' Web Site

New: interpolation and integration of functions.

Most new things show up as rants on my future page.

perpetual motion

Table of Contents (internal links):

Here's a hash table, code for perfect hashing, a good hash function for hash table lookup, a FAQ, some theory, and code to search for new hash functions. I tried designing block ciphers and finding characteristics. I had an article published in Dr. Dobb's in September 1997.
Have the cryptographic pseudorandom number generator ISAAC, a small noncryptographic pseudorandom number generator, a prize for breaking ISAAC, and ISAAC's background and theory. Also take some tests for randomness, and a table of orders of magnitude. Here are also some protocols and a unit vector generator.
See some skits from Boy Scouts, SQL tricks from Oracle, near-future speculations, some paper airplanes, some recipies, some music, and some cartoons that I wrote in college.
Look into pentagonal tiles, formulae for n-body orbit simulations, code for the HOMFLY knot polynomial, voting methods, choosing random passwords, jenny for pairwise testing, some error correction codes, a an april fool's design spec, and a web page for choosing colors.
Consider perpetual motion machines, a dirigiped design, a scale model of the solar system, a page on exploring orbits with Java, Klemperer Rosettes, a simulation of Cruithne (a near-earth object), of figure-eight orbits, of binary star planetary orbits, a set of noncolliding orbits, some Dyson Swarms (pretty pictures!), some methods for the n-body problem, a description of the orbit applet used, and a tentative itzu world.
Home projects
See my half bath, a house design that will never be built, a dollhouse that did get built, some genealogical notes, and a roof rack for Justine's car.
Here is my autobiography, a resume, a cong from the British Museum, a comparison of JPEG and JPEG 2000, a bit on software patents, my mom's art, and some early Bob photos. Here are people I've encountered more than once.

Here are some other sites:

Send mail to Bob at