Re: [eigen] 3.2.0-beta1 released!

[ Thread Index | Date Index | More Archives ]

Yes, bcp does exist, but it is not very good at paring things down. Mostly because decoupling boost modules seems to be a complete non-priority for the maintainers. 

I've used bcp and been astonished at how much bloat it pulls in for relatively simple things.

- You want a gaussian distribution?  bcp gives you 34MB of source.  Including a 2MB  vector200.hpp file you will never, ever use, unless you happen to go out of your way to define BOOST_TYPEOF_LIMIT_SIZE to a value *between* 200 and 250.
- You just need a smart pointer class? You get off relatively easy -- just 6.7MB of source (more than *all* of Eigen).

Don't get me wrong.  I hold parts of boost in high regard and use them frequently.

Just think twice before pulling in boost as a dependency.

-- Mark

If you want to play with bcp yourself, I'll save you the trouble of finding out how. ( linux)
(first download and untar the tarball, my notes are w/ 1.4.9 )
./bjam tools/bcp
 ./dist/bin/bcp --boost=. boost/math/distributions/normal.hpp   (targetDir)

 don't assume the bcp namespace feature will necessarily protect you against differing versions on the system. 

On 03/07/2013 03:04 PM, Keir Mierle wrote:
I haven't tried the boost extractor for Eigen's specific case, but when I last used the tool I found that you typically ended up with a large subset of boost because there are so many internal dependencies. With that said, it's worth trying.

On the other hand, I refuse to have boost dependencies without good reasons, and so probably won't be a customer of this.

On Thu, Mar 7, 2013 at 12:00 PM, Márton Danóczy <marton78@xxxxxxxxx> wrote:

Boost provides a tool for extracting parts of it:


On 7 Mar 2013 19:34, "Christoph Hertzberg" <chtz@xxxxxxxxxxxxxxxxxxxxxxxx> wrote:
On 07.03.2013 19:05, Hauke Heibel wrote:

On Thu, Mar 7, 2013 at 6:58 PM, Sameer Agarwal <sameeragarwal@xxxxxxxxxx>wrote:

On Thu, Mar 7, 2013 at 9:49 AM, Gael Guennebaud <gael.guennebaud@xxxxxxxxx

an idea would be to connect to the boost graph library that include
various ordering algorithms (see section 22.12

I think that is a great idea. On the other hand, it brings boost as a
dependency :).
I suppose that is not so bad.

I am not sure about the boost dependency. Don't get me wrong, I love boost
and use it pretty much every day but imposing this quite large dependency
on every Eigen user would be a quite big change. The main issue is that the
individual boost libraries are not well self-contained and quite often
result in depending not only on the part that you'ld lilke to use but also
on a whole bunch of other boost libraries. We would also most likely all of
a sudden introduce link dependencies whereas Eigen as it stands today is a
header only library.

So I am not quite sure ...

For that particular case, shouldn't it be possible to extract the relevant code out of boost? The boost license appears to be quite liberal w.r.t derived work.

boost graph also seems to be very mature/stable with no modifications since boost 1.36. I have not checked how deep the boost-dependencies are, though.

A disadvantage of depending on each user's boost install would be that sometimes boost suddenly makes small API-changes (I experienced that some time ago with pointer containers and recently with boost-preprocessor ...)


Dipl.-Inf., Dipl.-Math. Christoph Hertzberg
Cartesium 0.049
Universität Bremen
Enrique-Schmidt-Straße 5
28359 Bremen

Tel: +49 (421) 218-64252

Mail converted by MHonArc 2.6.19+