The coolest piece of mathematical software I’ve come across in the last few years is Chebfun, http://www.chebfun.org
Basic idea is to represent functions by high-degree polynomials which approximate them to near machine precision. After each operation, any terms which contribute at less than about 10^-15 are dropped, in the same way as bits get dropped after a standard floating point operation. This keeps the degree of the polynomial from growing exponentially.
The Chebfun team has found or invented a number of efficient algorithms for interacting with such polynomials, which make it practical to find roots, take integrals and derivatives, solve differential equations, combine multiple functions in various ways, and so on.
I think it must be the largest Matlab library anyone has yet built, and while I’m not the biggest fan of Matlab, they’ve done a great job integrating with the environment. Turns out Matlab has a bunch of object oriented features with operator and function overloading, so Chebfun can adopt most of the operators and functions for operating on regular Matlab arrays and overload them to work on their continuous function approximations. This makes for very clean and readable code for their users, though the internals get pretty complex.
Also recommended is Trefethen’s book Approximation Theory and Approximation Practice, which explains the mathematical ideas underlying the library. First 6 chapters are freely available online: http://www.chebfun.org/ATAP/
I greatly admire Trefethen's writing. I worry that there must be some really important aspects of numerical analysis that I ignore, simply because he hasn't written about them and so I understand them less well.
The clear exposition seems to have rubbed off on his whole Chebfun team at Oxford; all their papers are very readable. http://www.chebfun.org/publications/
I’ve also been reading lots of other papers in the field recently, and there’s at least a 2–3x slowdown and lots of extra mental effort when I try to read some other papers (though to be fair many other researchers are not native English speakers).
There are partial versions in Python and Julia, but porting the whole thing would be an enormous amount of work, at least a year of full time effort by a solid programmer.
One thing I would love to see is some kind of “Chebfun viewer” partial implementation ported to several languages and environments, that wouldn’t try to provide everything from the Matlab version, but would at least cover function evaluation, and maybe a few other features, and would support importing chebfuns exported from Matlab. Especially nice environments for such a thing would be C/C++ (ideally with SIMD/GPU implementation) and in-browser JavaScript.
This question and answers are gold! The answer with LaTex (http://mathoverflow.net/a/213268/42557) and the diametrically opposed comments to it illustrate problems with Tex.
One thing I didn't see mentioned is better collaborative tools (true for any research but doubly true here due to difficulties with notation, etc.). Note the quick progression of results triggered by Tao's polymath blog (http://polymathprojects.org/) but I find the current Wordpress format not very suitable for search and browsing.
(I'm the founder of SageMath.) SageMathCloud (https://cloud.sagemath.com) is a highly collaborative online web application for working with Sage, R, Python, IPython, LaTeX, etc that I've been working extremely hard on this for almost 3 years. We'll have a major new release this week with much new polish and functionality (the testing server is at https://web0.sagemath.com). Everything is 100% open source. https://github.com/sagemathinc/smc
Jim Simons, after retiring from Renaissance Technologies with a cool 15 billion, has spent the last 10 years giving grants to people in the pure sciences. He's a true academic at heart -- a BS from MIT in Math, PhD from Berkeley which yielded a whole new field (heh) of something to do with Riemannian manifolds that's way beyond my ability to grok but apparently it's on par with "oh yeah I invented abstract algebra (a la Emmy Noether)", worked at Princeton for the NSA cracking Cold War codes during Vietnam but got fired because he wanted to do his own recreational mathematics instead. Anyways, he's very fond of academics and gives MacArthur-esque grants, especially to people who want to change the way mathematics is taught. Approach his fund. I'm 100% sure he'll give you a grant on the spot.
My Mathematical Modeling teacher is having us use SageMathCloud! It's a great tool. I didn't know it could be so easy to do things I thought I needed something akin to Mathematica for. Thanks for your effort!
You might like to check out https://www.overleaf.com as a collaborative LaTeX editor, and we now have an integration with services such as Plot.ly[1] and Mendeley[2] to make it easy to pull in figures and references.
Feedback very welcome -- I'm one of the co-founders and we're continually developing the platform to better serve researchers and student authors.
I want to say, as William Stein and John Hammersley have said in other replies, that there are people working on making things better. If you are reading this thinking that these things are big jobs and there is nothing you can do, think some more. Find something you are interested in, and pitch in. Sage, for example, is a great project that I'm sure any reader of this site could contribute to in some way.
For another example, I'm VP of the TeX Users Group http://www.tug.org. If you are looking for a project to work on, or just thinking to support the work of others on LuaTeX, or XeTeX, or LaTeX 3, or ConTeXt, etc. then come join us.
I was surprised there weren't any "ambitious" wishes. Most, if not all, of the answers seem in response to practicality issues. Nothing along the terms of ML for math theorems or an accessible proof library for computers.
Scroll down:
"I'd like to have on a usb key a user friendly software that could parse a math article to check the proofs in it without having to learn how to use stuff like Coq and highlight the possible gaps. But this may sound unrealistic, at least for now."
This is great. I would love to see these kinds of discussions across different communities/lines-of-work!
I had hoped shouldexist, and similar attempts to collect this kind of information, would get there; but none seem to survive.
Basic idea is to represent functions by high-degree polynomials which approximate them to near machine precision. After each operation, any terms which contribute at less than about 10^-15 are dropped, in the same way as bits get dropped after a standard floating point operation. This keeps the degree of the polynomial from growing exponentially.
The Chebfun team has found or invented a number of efficient algorithms for interacting with such polynomials, which make it practical to find roots, take integrals and derivatives, solve differential equations, combine multiple functions in various ways, and so on.
I think it must be the largest Matlab library anyone has yet built, and while I’m not the biggest fan of Matlab, they’ve done a great job integrating with the environment. Turns out Matlab has a bunch of object oriented features with operator and function overloading, so Chebfun can adopt most of the operators and functions for operating on regular Matlab arrays and overload them to work on their continuous function approximations. This makes for very clean and readable code for their users, though the internals get pretty complex.
Also recommended is Trefethen’s book Approximation Theory and Approximation Practice, which explains the mathematical ideas underlying the library. First 6 chapters are freely available online: http://www.chebfun.org/ATAP/