|
Boost : |
From: Brook Milligan (brook_at_[hidden])
Date: 2007-06-28 11:27:38
Reetesh Mukul writes:
> 1. The exm1.cpp and exm2.cpp are not opening.
I presume you are referring to thw web page documentation. Thanks for
catching that. I forgot to upload the relevant source files. It is
fixed now.
> 2. Apart from catching floating point issues, what other thing this
> library
> does? Can we do convolution of probabilities?
The purpose of the library is not exactly to catch floating point
issues (at least in the sense of exceptions), but rather to
encapsulate the challenge of managing both "normal" probabilities
(i.e., constrained within [0,1]) and their logarithms within the same
logical framework. This can be especially troublesome when the
problem calls for switching between domains as the calculations
progress.
There are clearly additional operations that could be added, though I
am not certain that they don't make better sense at a higher level of
organization. For example, convolutions really refers to probability
distributions not individual probability quantities. It is the latter
that are supported here. Clearly, a probability distribution library
could be implemented on top of this that would handle convolutions and
other more general operations. Perhaps the whole point of this is to
make such possibilities that much easier, because the domain issues
can be largely abstracted away. This is also where I see the
integration possibilities with other Boost libraries. I have not
investigated this in detail, but the ones you mention (random,
accumulators, and the math tool kit) as well as units are all natural
possibilities. My current feeling is that the integration represents
the next step, once this library is "complete." Perhaps in
considering this library one criterion should be how well it lends
itself to supporting higher level solutions such as you mention.
If there is a strong consensus that this library should do much more
than encapsulate the basic quantities, that can be accomplished. At
this point, though, I feel like it solves a clearly defined problem
and provides a natural foundation for the higher level operations you
suggest. Ideas are welcome, though.
Thanks for your quick look. Now that the examples are actually
visible on the web, perhaps this will all be clearer. Any further
comments and suggestions are welcome.
Cheers,
Brook
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk