Boost logo

Ublas :

Subject: [ublas] A few patches for bugs and a feature
From: Jesse Perla (jesseperla_at_[hidden])
Date: 2010-07-15 19:15:09

I realize it may be too late for 1.44 (though I hope not).  But I have
a couple of patches that I have had to apply the last few versions.  A
few are for bugs, and a few are for features.  I added a ticket to
trac but wanted to make sure that I did it right. All of them have
patches that I just built from the trunk.

1)  MSVC doesn't work with bounded_vector's of size 0:
The problem is when you allocate statically allocated vectors of size
0, MSVC throws a fit.

2) SFINAE added for operator * breaks auto-differentiation library:
When operator * overloading was discussed, some overload resolution
code was added. But the metafunction used is unncessarily strong for
the requirements on the type and breaks an AD library I use.

3) Simple operator * for matrix products.
This has been discussed many times, but I have attached a very simple
implementation of this that works for non-nested products, and
statically tests if the products are nested to prevent compilation.
It seems that this code is unlikely to cause any regressions, so I
wonder if we should just bite the bullet and get a simple
implementation in there for now.

4) Bounded vector constructor missing explicit and an initialization
There is an ugly bug in the bounded vector constructors and a simple
missing feature to make it consistent with other vector types.

I don't think that any of these (except perhaps the MSVC patch along
with boost::serialization?) are high risk, and if it is possible to
merge in this or the next release that would be awesome. Please tell
me if I have created the patch incorrectly, etc.