Finding the First Trillion Congruent Numbers
eldavojohn writes "First stated by al-Karaji about a thousand years ago, the congruent number problem is simplified to finding positive whole numbers that are the area of a right triangle with rational number sides. Today, discovering these congruent numbers is limited only by the size of a computer's hard drive. An international team of mathematicians recently decided to push the limits on finding congruent numbers and came up with the first trillion. Their two approaches are outlined in detail, with pseudo-code, in their paper (PDF) as well as details on their hardware. For those of you familiar with this sort of work, the article provides links to solving this problem — from multiplying very large numbers to identifying square-free congruent numbers."
I'm so not a maths geek, but why is this useful other than being able to say "hey, we found the first trillion congruent numbers"?
I know that certain branches are useful for cryptography purposes, but what awesomeness does this let us do?
It's all fun and games until a 200' robot dinosaur shows up and trashes Neo-Tokyo... Again
They aren't hiding any part of their methodology. They've given more than enough details. Posting the actual code in the paper would be a distraction. When publishing new algorithms mathematicians generally outline it in pseudocode since this is a) easier to follow and b) much more useful for issues of proving formal correctness. I would not be at all surprised if you can find the code on the website of one of the authors and almost certainly the authors will provide the code details if you send them an email.
It's neither, turns out it's a Muslim congruent number!
I hate printers.
That's because the programming itself is menial work. The algorithms are more important which the pseudo code describes well enough.
I think programmers are prone to overestimating the value of actual code in scientific research, mostly because they know how much fun coding can be. Misunderstand me correctly here - I'm not saying how you implement something is irrelevant or not a matter of skill, but that when you are trying to write a scientific paper, the actual code you use to implement a specific algorithm is not all that interesting. It's sort of like the color of your shoes when you go to a job interview - it's really irrelevant to the goal you are trying to achieve unless you fsck it up completely and end up with iridescent footwear.
That's a good explanation. I have to emphasize though, that they actually found all the congruent numbers up to a trillion only under the completely unproven hypothesis that the Birch and Swinnerton-Dyer conjecture is true. It's entirely possible that this conjecture is false, and some of the numbers they found are actually not congruent numbers. However, part of the conjecture is known (by work of Coates and Wiles -- the same Wiles who proved Fermat's Last Theorem), so we do know that all numbers they didn't list are definitely not congruent numbers.
Caveat: I am not an expert on BSD, but my advisor is.
First place to look is here: http://www.claymath.org/millennium/Birch_and_Swinnerton-Dyer_Conjecture/. For one thing, the BSD conjecture implies that the title of this story is accurate. But, we don't even know that. Consider Fermat's last "theorem" -- the linchpin was a theorem "All Elliptic Curves are Modular" -- before that, we knew that modular elliptic curves behaved quite nicely, but we didn't know if there were other elliptic curves. To this day, we can prove remarkably little about very obvious-looking trends that we see in data about elliptic curves. Assuming BSD, many computations about elliptic curves are suddenly tractable.
Ok, but what does this have to do with the country's bottom line? Directly, I'd say "nothing". Indirectly, though, this is providing a lot of interest to American mathematicians. The current thinking is (hah) a bit of a trickle-down effect. As undergrads study, they gravitate towards the more interesting fields -- if math looks sexy, we get more mathematicians. The more mathematicians graduate, the more funding mathematics departments will get in a very direct way -- this gives us better teaching budgets, which should effect an increase in the number of good math teachers. The more good math teachers we have, the better our students will learn. That's the hope, anyway.
More than that, this problem is embarrassingly parallel - each number doesn't change the result of any other, so you can very easily split up the work load on many computers, or write something that will run on GPU's or something. At a certain point, arithmetic will become too time expensive (because the number uses so many words of memory). So either you run out of memory first (unlikely) or things start to take to long. Possibly things will start to take to long when the numbers become larger then some cache, and the cache miss rate will drive your running time into the ground.