What Tom does on a rainy Sunday afternoon
Aug. 20th, 2006 06:28 pmShould you ever have been curious about the integer points on the quartic surface x^4+y^4+z^4=N*t^4, the program here will find them with reasonable speed. Call it with 'four N limit'; if you have lots of processors to use, 'four (N) (limit) 0 (limit/4)' on the first one, 'four (N) (limit) (limit/4) (limit/2)' on the second and so on.
1949^4 + 4727^4 + 12389^4 = 2657^4 * 483
It takes a minute on a 2.4GHz Pentium 4 with a very old motherboard for 'four 163 10000' to find all the points on x^4+y^4+z^4=163t^4 with less than five digits in each term, or abouttwelvefifty1 hours for 'four 1 500000' to find the first-discovered-in-1986 smallest point on x^4+y^4+z^4=t^4; the program uses about (limit/30000) megabytes of memory, and time a little over quadratic in (limit). I'd be interested to see how fast it runs on actually-fast modern computers, if any of my readers have one, and a C++ compiler, and the desire to run 'time four 163 10000' and wait a minute for the result.
Some of the points on these surfaces are known to be connected with points on elliptic curves lying on the surface (which is why a separate program of mine managed to find 7592431981391^4 + 22495595284040^4 + 27239791692640^4 = 29999857938609^4, which would be found by the simple search program only after some thousands of times the present age of the universe); the only problem is that I have no idea how to get from a known point to an elliptic curve that it happens to lie on. I obtained the big point by using a known elliptic curve and finding large points on that using standard software (part of which I developed for my PhD), but I haven't yet managed to find any elliptic curves for N not equal to 1.
On the other hand, it may well be that there are points on the surfaces which lie on no elliptic curve; nobody has a clue how to find those by any methods cleverer than the one implemented in the code above.
1: it turned out that the run-time is a bit more over quadratic than I thought it was
1949^4 + 4727^4 + 12389^4 = 2657^4 * 483
It takes a minute on a 2.4GHz Pentium 4 with a very old motherboard for 'four 163 10000' to find all the points on x^4+y^4+z^4=163t^4 with less than five digits in each term, or about
Some of the points on these surfaces are known to be connected with points on elliptic curves lying on the surface (which is why a separate program of mine managed to find 7592431981391^4 + 22495595284040^4 + 27239791692640^4 = 29999857938609^4, which would be found by the simple search program only after some thousands of times the present age of the universe); the only problem is that I have no idea how to get from a known point to an elliptic curve that it happens to lie on. I obtained the big point by using a known elliptic curve and finding large points on that using standard software (part of which I developed for my PhD), but I haven't yet managed to find any elliptic curves for N not equal to 1.
On the other hand, it may well be that there are points on the surfaces which lie on no elliptic curve; nobody has a clue how to find those by any methods cleverer than the one implemented in the code above.
1: it turned out that the run-time is a bit more over quadratic than I thought it was