March 9, 2008
Dear number theorists,
I am pleased to announce that, subject to a couple of small caveats, I
have verified that 24153319581254312065344 is the
sixth taxicab number.
What are the caveats?
What have I done?
The main findings
The main scan was done using a hash-bucket approach similar to that used
by Durango Bill; like him, I started out following David Wilson's heap-based
approach, and I too found that this was significantly slower than the
hash-bucket approach. I attempted to speed up the heap-based program by
performing calculations mod N (ie, every number in the heap is
equal to the same K mod N. While this worked very well to
parallelize the calculations, it did not improve the overall speed; however,
as a check on the main calculation it proved very effective.
I made several heap runs with different values of K mod
1601 and compared the results of these with the corresponding
values extracted from the main dataset; I found no differences from
the main calculation.
I made another series of heap runs, this time without doing
calculations mod N, as spot-checks on small sub-ranges;
again, I found no differences from the main calculation.
I wrote a couple more programs to perform other checks: first, a trivial check to verify that each recorded number is indeed expressed correctly as the sum of the cubes of the two recorded components, for all pairs of components, and second, a check to see that no components are missing -- in part to check my main scanners, but in part also to check hardware glitches, on the theory that if a hardware glitch might have destroyed part of the data for a number as it was being processed, some partial output might still appear, and thus a five-way sum might be erroneously recorded as a three-way or a four-way sum. Obviously, this won't catch all hardware glitches, but it's better than nothing.
In order to try and keep from introducing common bugs into all programs, I wrote these last two programs in Haskell; the first two main scanners were written in C. The two Haskell programs were not run against all the two-way numbers, only against the three-way or higher numbers. Again, I found no differences between the results.
I also wrote a Haskell implementation of something similar to the hash-bucket scanner; that works, but is too slow to provide a realistic check against the main hash-bucket scanner. However, in the small ranges where I ran both, there were no differences in the results.
I have placed copies of several data files onto my website at www.korgwal.com/ramanujan/:
mod 1001 + A^3, ie,
those for which A^3 is almost equal to B^3 +
C^3: Fermat near-misses.I looked for three-way Fermat near-misses, but found none with a "miss" as small as 1: the only three-way numbers I found where one component is less than 10 are:
There may still be some in the un-scanned portion of [1 .. 1e21].
In all of the above data files, the format is
sum a1 b2 a2 b2 ...
where sum = ai3 +
bi3 for each pair
(ai,bi).
Here are copies of the programs:
GMP to format the ramanumbers for output,
but can be built entirely by itself: in that case, the ramanumbers are
printed as uint64:uint32.I have not placed a copy of the entire two-way-or-higher dataset onto my website. While I'm happy to share it with anyone who would like a copy, I don't have the bandwidth either at home, to upload it, or on the website, for others to download it. If someone would like a copy, please contact me and we'll work out a way to get it to you. If you are in the Silicon Valley area, it should be relatively easy to achieve that.
A portion of these calculations was done using some of the idle cycles of
an old Itanium server at my previous employer, ASML MaskTools (later, both
it and I were acquired by my current employer, Brion Technologies, an ASML
company). I thank them for these idle cycles. Other participating computers
included a Sun server with a couple of Opteron CPUs, a couple of Pentium
PCs, and an old iMac G3. In a moment of madness, I began to port the main
scanner program to a Soekris net4801 which serves as my firewall, but I was
stopped by the lack of GMP on that computer, and sanity
returned before I had finished building it.
Uwe Hollerbach
amateur numerologist
March 2008