Boost logo

Boost :

From: Marco (mrcekets_at_[hidden])
Date: 2007-04-14 12:37:45

On Sat, 14 Apr 2007 11:04:40 +0200, John Maddock <john_at_[hidden]>

> Marco wrote:
>> Hi, I would like some information.
>> How much the special functions implementation is targeted to the
>> evaluation of statistical quantities over the different distributions
>> ? Is the special functions implentation enough general to be usable
>> as a standalone library ?
> Yes absolutely.

This is really a good thing, it's unuseful finding out the wheel every

>> If so, why not split the math toolkit into two libraries ?
> That's more or less what happended already if you read the docs,
> ultimately I expect this to all become part of Boost.Math but with
> separate links from our library's index to each of the subsections.
> Other suggestions welcomed of course :-)

I guessed it, but I wanted to be sure :-)

> One thing I'm not keen to do is totally split the docs: there's a huge
> amount of cross referencing between the parts, and it would be a major
> undertaking to fully separate them. I'd prefer to keep them as separate
> "chapters" to one Boost.Math lib, with of course hopefully more chapters
> in due course (if someone volunteers to write them!)

I agree: lazy splitting (i.e. chapter splitting ) it's enough.

>> How much the special functions in the math toolkit conform to the ISO
>> C++09 standard proposal for a special function library ?
> Quite a lot, there are currently only four special functions missing that
> are present in the TR1: the two hypergeometric functions, zeta, and the
> exponential integral. The latter two are known quantities, but the
> hypergeometrics are vertually impossible to do right IMO (and certainly
> impossible to fully test - there are two many degrees of freedom to
> guarantee adequate coverage). Those four might make an interesting SOC
> project for someone next year though. In the mean time if the library is
> accepted then the plan is for me to provide a TR1-compatible thin
> wrapper to the special functions, within the Boost.TR1 library. Also
> missing are some of the C99 math functions: many of these though can
> only be implemented at the hardware level (all those rounding control
> functions for example), so
> those won't be appearing in the foreseeable future. But most platforms
> seem to be acquiring these anyway?
> There are also a few special functions that are essential for the stats
> code
> but not present in TR1: the incomplete gamma and beta functions plus
> there
> inverses, and digamma. And then there are a few ad-hoc functions that
> are used internally, but exposed publicly because the problems they
> solve often crop up when implementing other special functions: things
> like tgamma1pm1(z)
> which calculates tgamma(1+z)-1 for small z.

Nice, so if there is no support for special functions in the user's
standard library, he can utilize the boost::math implementation in a
transparent way.
The viceversa would be nice too: a boost::math-compatible thin wrapper to
those special functions whose implementation is available also in the
standard library, essentially because the last ones could provide better
performance on the specific architeture the user is working on.

At beginning names like tgamma1pm1 seem a little odd, it's a pity that
these functions don't own a specific name in literature. Anyway, once read
the definition, I find them both concise and self-explanatory.

> Hope this helps, the special functions index is online here
> BTW.
> John.

Yes, thanks a lot.


Using Opera's revolutionary e-mail client:

Boost list run by bdawes at, gregod at, cpdaniel at, john at