Boost logo

Glas :

Re: [glas] using (boost)range or STL style interface [was: dense and sparse vectors]

From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2005-08-03 16:39:13


David Abrahams wrote:
> For what it's worth, the MTL4 project is using a Sequence interface:
> (http://tinyurl.com/cdnlt or
> http://boost-consulting.com/projects/mtl4/libs/sequence/doc/html/),
> which is similar to the Boost.Range interface, but generalized along
> several dimensions.
>
> - Instead of iterators, we use cursors and property maps:
> http://tinyurl.com/7hcka
> (http://boost-consulting.com/projects/mtl4/libs/sequence/doc/html/cursors_and_property_maps.html)

Very interesting indeed. How would you compare the cursors and property
maps approach with the n1531 proposal? Do you have a prototype lying
around that I can use to get some hands on experience?

Note: The motivation for my response on the range-style interface was
mainly that from my experience numerics people (which are the (future)
users of glas) need 'everything as simple as possible but not simpler'
(to quote Einstein). Everybody is now familiar with the [begin,end[
iterators. Using an alternative style can therefore only be adopted IMHO
if it clearly provides a lot of added value. C++ is already a
complicated language (well if you compare it to fortran77) and
numericists want to focus on getting their job done (without becoming a
language-lawyer). This is from my experience but more important are
actually the opinions of the numericists on this ml.

<snip>

>
> - We are supporting segmented cursors and property maps, per
> http://lafstern.org/matt/segmented.pdf. Segmentation turns out to
> be crucial for blocking, parallel decomposition, and efficient
> operation on linearized CSR matrices.

thanks for the link. Is there a practical|performance difference between
the implementation as proposed by Matt Austern and the implementation in
the cursors and property maps?