Hi David,
I'm an Open University student completing my Open degree this summer (CompSci / Pure- & Applied Maths / Classical History) and am very interested in the Bernoulli numbers project for the Google Summer of Code. As well as the OU I've done quite a bit of mathematics elsewhere (Durham and KCL). Enclosed is my (naive) response to your challenge to implement the Akiyama–Tanigawa algorithm.
I use the Boost framework for rational numbers, so as not to lose precision (though haven't yet adapted the solution for arbitrary precision numbers). [It would be more aesthetically pleasing if I could write the main algorithm in a STL-style so that it iterates of the vector, rather than explicitly using an index.]
Code looks pretty good, and the use of rational is adept and creative. It's a good solution.
I have yet to get to grips with Boost.Test, but the enclosed shell script can generate a list of results, which matches the table found on the Bernoulli Number Page http://www.bernoulli.org/ out to B_20.
Or go to Wolfram's Alpha which understands the language of Mathematica(R) to a great extent and type in something like: Table[N[BernoulliB[i], 51], {i, 0, 20, 1}]
All code criticism gratefully accepted,
The code is good enough. So there's no more work needed here.
Bernoulli.cpp http://boost.2283326.n4.nabble.com/file/n4646219/Bernoulli.cpp Bernoulli_test.sh http://boost.2283326.n4.nabble.com/file/n4646219/Bernoulli_test.sh
You need to start working on your proposal. Start the proposal according to this link https://svn.boost.org/trac/boost/wiki/SoCSubmissionTemplatehttps://svn.boost.org/trac/boost/wiki/SoCSubmissionTemplate. This link may also help https://svn.boost.org/trac/boost/wiki/SoCHints We have more applications for the Boost.Math project and fewer for the Multiprecision project. Are you interested in the Multiprecision project? Do you have any experience with those kinds of algorithms. Sincerely, Chris.