[math] Contribution and TODO-list implementation.

Hello. I'm russian student. My department is Applied Math. I need to make my magister work and I would like to relate it with Boost.Math development. I think this work could be something like implementation of tasks mentioned in TODO-list. New feature development may take a long time. In the best case, I would be glad to take job and reviewer for it. If anyone has an idea - I'm ready to take serious and big job for 1,5 years. Thanks.

2013/10/30 Bikineev
Hello. I'm russian student. My department is Applied Math. I need to make my magister work and I would like to relate it with Boost.Math development. I think this work could be something like implementation of tasks mentioned in TODO-list. New feature development may take a long time. In the best case, I would be glad to take job and reviewer for it. If anyone has an idea - I'm ready to take serious and big job for 1,5 years. Thanks.
Hi and welcome on board. There is a big fuss in Boost with 1.55 release and migration to GIT, so do not get disappointed if Boost.Math maintainers won't reply in short time. Until then you may look around and read the newsletters. Take a look at the ideas for GSOC https://svn.boost.org/trac/boost/wiki/SoC2013 and math TODOs. Also take a look at the open tickets and source code of Boost.Math, Boost.Odeint and Boost.Multiprecision. Think of a problem or TODO that you are willing to solve, find a problem that will be interesting for you. -- Best regards, Antony Polukhin

Hello. I'm russian student. My department is Applied Math. I need to make my magister work and I would like to relate it with Boost.Math development. I think this work could be something like implementation of tasks mentioned in TODO-list. New feature development may take a long time. In the best case, I would be glad to take job and reviewer for it. If anyone has an idea - I'm ready to take serious and big job for 1,5 years. Thanks.
Hi there, I think you need to decide what really appeals to you. I think you should also consider something quite small to start off with so you can get to grips with the Math lib's way of doing things: that's probably the biggest obstacle to contributing, but once you have that worked out it's much easier to make contributions. One relatively trivial example would be to implement the Bessel function derivatives in terms of the regular Bessel functions - plus the hard part - tests and docs. Or you could look through the list of functions at http://functions.wolfram.com/ and see if there's anything we're missing that interests you (but I can't guarantee we'll be able to help you much with implementation methodology - we've done the easy ones already!). Or you could implement some of the missing distributions mentioned on the TODO page. And of course we'll try to help you as much as we can, HTH, John.

And of course we'll try to help you as much as we can,
Not in the release yet, but this may also be of help: http://svn.boost.org/svn/boost/trunk/libs/math/doc/html/math_toolkit/special... John.

And of course we'll try to help you as much as we can, John.
Thank you so much for prompt reply! Most likely, I'll try to implement Bessel function derivatives. I'll write after some results!
This is actually a pretty good idea, derivatives of Bessel
functions.
Please be advised that writing any research thesis and
contributing to Boost is a very individual effort.
John mentioned that we can help in some way,
but quite honestly, you would be researching and
writing independently for long stretches because we
simply do not have the time for full-time research advisers.
In particular, I have been getting involved in *way* too
many projects recently, and I have at least a year of
backlogged projects to work through.
That being said, I believe that such a contribution
--- if you are the man for the job --- would be a good
topic for your thesis.
It is also always a good idea to round out any thesis or
research work with practical examples. So in your thesis,
you should also include some applications.
One application might be, for example, using Bessel function
derivatives to assist in the computation of certain zeros
of Bessel functions. When we added the zeros of Bessel
functions last year, we used a "poor man's" derivative
calculation in some expansion regions via a trivial recursion
relation --- which is slow because it requires the calculation
of multiple Bessel functions. Having "native" derivatives
of Bessel functions could improve these calculations.
And this would be one of your examples, and a further
contribution to the code.
You should also seek out one or two other examples
such as special functions expanded in Bessel derivatives,
and also extend these to multiprecision.
You might also consider including in some way
an investigation of the basic tenets of generic numeric
programming with Boost.Math and Boost.Multiprecision.
Although this is a research topic that can stand alone,
you might consider include it in something like a final chapter
or an appendix. This would pave the way for another
research paper wholly dedicated to generic numeric
programing in C++ with Boost.
Good luck and keep in touch with further progress.
Sincerely, Chris.
On Thursday, October 31, 2013 8:00 AM, bikineev
And of course we'll try to help you as much as we can, John.
Thank you so much for prompt reply! Most likely, I'll try to implement Bessel function deriatives. I'll write after some results! _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Christopher Kormanyos
Please be advised that writing any research thesis and contributing to Boost is a very individual effort.
John mentioned that we can help in some way, but quite honestly, you would be researching and writing independently for long stretches because we simply do not have the time for full-time research advisers.
Yes, of course. I didn't mean that research and writing should be collective work. It would be impudent on my part.
It is also always a good idea to round out any thesis or research work with practical examples. So in your thesis, you should also include some applications.
One application might be, for example, using Bessel function derivatives to assist in the computation of certain zeros of Bessel functions. When we added the zeros of Bessel functions last year, we used a "poor man's" derivative calculation in some expansion regions via a trivial recursion relation --- which is slow because it requires the calculation of multiple Bessel functions. Having "native" derivatives of Bessel functions could improve these calculations. And this would be one of your examples, and a further contribution to the code.
You should also seek out one or two other examples such as special functions expanded in Bessel derivatives, and also extend these to multiprecision.
You might also consider including in some way an investigation of the basic tenets of generic numeric programming with Boost.Math and Boost.Multiprecision. Although this is a research topic that can stand alone, you might consider include it in something like a final chapter or an appendix. This would pave the way for another research paper wholly dedicated to generic numeric programing in C++ with Boost.
Thank you so much for ideas! I will follow them.
Having "native" derivatives of Bessel functions could improve these calculations.
Does it mean that I should calculate Bessel functions derivatives with no using Bessel functions? I mean formulas like in http://functions.wolfram.com/Bessel-TypeFunctions/BesselK/20/01/02/ If no, what is the most suitable formula for calculating derivatives? For example, it seems we should always check x value for zero using first or second formula. And one more question. How to generate test input values (e.g. bessel_j_data.ipp) and their results calculated on functions.wolfram.com? Or should they be written manually? Should these values (first two) be the same for functions and their derivatives? Thanks.

Hello. I'm russian student. My department is Applied Math. I need to make my magister work and I would like to relate it with Boost.Math development. I think this work could be something like implementation of tasks mentioned in TODO-list. New feature development may take a long time. In the best case, I would be glad to take job and reviewer for it. If anyone has an idea - I'm ready to take serious and big job for 1,5 years. Thanks.
I'm still trying to catch up with my extensive list of TODOs from summer and Boost.
At any rate, ...
In addition to John's detailed responses... I've got a few ideas for Boost.Math that might be acceptable for the scope of your project. I would be interested in looking into new functions such as those related to the Lerch transcendental (Zeta, Hurwitz Zeta, Polygamma for wider argument range, etc.). In addition, there are still numerous extensions to multiprecision in association with Boost.Math that could be investigated, optimized, better tested, etc., etc., etc...
But first up, may I ask a few questions?
* Has your project of concept been approved?
* Do you need such approval?
* Do you have a magister (thesis) adviser?
* What degree are you pursuing with this thesis?
* When would you like to begin, if this is feasible?
Sincerely, Chris.
On Wednesday, October 30, 2013 2:51 AM, Bikineev

Thank you for reply.
I would be interested in looking into new functions such as those related to the Lerch transcendental (Zeta, Hurwitz Zeta, Polygamma for wider argument range, etc.).
I find it interesting too. Maybe really it is better to start from something small to study concepts and sides of writing special functions.
* Has your project of concept been approved? No, currently I haven't fully formalized project subject yet. But in short time I should do that and make up small description. It should include next topics: formulation of the problem, practical value, assessment of labor. In general I would call the subject as "Development of [math functions or extension] for Boost.Math, research on problems of numerical implementation" or something like this. * Do you need such approval? Yes, of course. I think I won't meet serious troubles in my university with it. Anyway this contribution is interesting to me. It is better to say that I want to relate contribution with my university work. * Do you have a magister (thesis) adviser? Yes, I have scientific adviser, supervisor. He is not programmer. His real responsibility is to link my project with department and its professors. * What degree are you pursuing with this thesis? In Russia this degree is called "magister". I think in USA it is called "master of science". * When would you like to begin, if this is feasible? Starting from the next weekend

In addition to John's detailed responses... I've got a few ideas for Boost.Math that might be acceptable for the scope of your project. I would be interested in looking into new functions such as those related to the Lerch transcendental (Zeta, Hurwitz Zeta, Polygamma for wider argument range, etc.).
To add to those are the hypergeometric functions 1F1 and 2F1, note however that these are not only hard to implement well, but they are practically untestable (too many arguments). Unfortunately they are also very useful! A good research project though... John.

In addition to John's detailed responses... I've got a few ideas for Boost.Math that might be acceptable for the scope of your project. I would be interested in looking into new functions such as those related to the Lerch transcendental (Zeta, Hurwitz Zeta, Polygamma for wider argument range, etc.).
To add to those are the hypergeometric functions 1F1 and 2F1, note however that these are not only hard to implement well, but they are practically untestable (too many arguments). Unfortunately they are also very useful! A good research project though...
Oh, the list goes on and on...
Yudell Luke's classic books have some algorithms on multi-term
recurrence relations of generalized hypergeometric functions pFq
in some parameter regions. I have extended some of these to float,
double, long double, multiprecision, for real and complex for certain
parameter regions.
I can confirm that computing hypergeometric functions over wide
ranges of parameters is difficult, and couldpotentially comprise
a rich research topic.
I can provide some starting points for calculating some of
these functions, if requested.
Sincerely, Chris.
On Friday, November 1, 2013 1:12 PM, John Maddock
In addition to John's detailed responses... I've got a few ideas for Boost.Math that might be acceptable for the scope of your project. I would be interested in looking into new functions such as those related to the Lerch transcendental (Zeta, Hurwitz Zeta, Polygamma for wider argument range, etc.).
To add to those are the hypergeometric functions 1F1 and 2F1, note however that these are not only hard to implement well, but they are practically untestable (too many arguments). Unfortunately they are also very useful! A good research project though... John. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

To add to those are the hypergeometric functions 1F1 and 2F1, note however that these are not only hard to implement well, but they are practically untestable (too many arguments). Unfortunately they are also very useful! A good research project though...
I just found this thesis today on the net.
http://people.maths.ox.ac.uk/porterm/research/pearson_final.pdf
The guy calculates 1F1(a, b; z) and 2F1(a, b, c; z) for
a,b,c *in* R, and z *in* C. He uses many numerical techniques.
It might be fascinating to extend his research to template
code in Boost and certain domains of
multiple-precision.
Just an idea, if there is still any interest in kicking around
ideas.
Sincerely, Chris
On Friday, November 1, 2013 1:12 PM, John Maddock
In addition to John's detailed responses... I've got a few ideas for Boost.Math that might be acceptable for the scope of your project. I would be interested in looking into new functions such as those related to the Lerch transcendental (Zeta, Hurwitz Zeta, Polygamma for wider argument range, etc.).
To add to those are the hypergeometric functions 1F1 and 2F1, note however that these are not only hard to implement well, but they are practically untestable (too many arguments). Unfortunately they are also very useful! A good research project though... John. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (5)
-
Antony Polukhin
-
bikineev
-
Bikineev
-
Christopher Kormanyos
-
John Maddock