views:

287

answers:

3

I'd like an up-to-date overview of numerical methods with working code written in any programming language (the higher level the better).

Numerical Recipes was good in this sense when it was first published in 1988 but their subsequent editions failed to bring it up to date. For example, the coverage of FFTs in NR's third edition (2007) still encourages direct padding with zeroes and advises against mixed radix and doesn't even mention Radar's algorithm or Bluestein's algorithm. The book's index doesn't even mention "cache". Their approaches to software engineering are decades out of date. And so on.

I'd like to see coverage of cache obliviousness (divide and conquer), parallelism for multicores (e.g. shared-memory parallel LUP, parallel SVD), modern algorithms (e.g. FFTW), modern software engineering (e.g. cleanly factored using objects and functions) and so on. Preferably general books on all numerical methods but, failing that, a collection of books that cover all of the major domains.

What books should I be reading?

+2  A: 

For FFT I'd recommend: Inside the FFT Black Box: Serial and Parallel Fast Fourier Transform Algorithms.

alt text

Additionally: Discrete and Continuous Fourier Transforms: Analysis, Applications and Fast Algorithms alt text

Ami
That's 11 years old. Does it cover FFTW?
Jon Harrop
The first one does not, the second one does.
Ami
+3  A: 

Unfortunately, I don't a single source for what you're looking for exists (though I would love to hear of such a resource). If you look at what numerical recipes covered when it was first published, and what it covers now, I think it is the type of text that attempts to be the "jack of all trades." Unfortunately, it seems to fit the old cliche- "Jack of all trades, master of none." In reality, I think it would be nearly impossible to write, and keep up a text that covers all the subjects that NR covers, with the kind of depth that you are looking for.

That leaves seeking out individual texts, and what I've found more helpful- journal articles. Processing technology and thus appropriate algorithms to solve problems change extremely fast, and thus, to find the most up-to-date info on algorithms, I would suggest diving into the journal databases, and looking at the most recent articles published on the topics of interest.

MarkD
+1  A: 

I've only been able to find disconnected works in the field of GPGPU, where there is a lot of activity on the numerical front. I've read some articles in GPU Gems which have increased my understanding of parallelizing numerical algorithms. However, I don't think any of the algorithms you mentioned were covered specifically, though I could just have easily missed them.

codekaizen