Boost logo

Ublas :

From: Georg Baum (Georg.Baum_at_[hidden])
Date: 2007-03-17 15:07:21


Am Samstag, 17. März 2007 19:41 schrieb Hugo Duncan:
> Hello Karl,
>
> >>> Any chance of getting the leading dimension fixed in the bindings
> >>> traits?
> >>>
> >>> http://www.nabble.com/Lapack-bindings-t3237071.html
> >>> http://www.nabble.com/ublas-traits-bug-----leading_dimension-p9469619
> >>> .html
>
> > In my opinion, there is no error in the bindings traits classes.
> > To be sure, can someone tell me what the difference is between size_m
> > and size_M? The leading dimension is the number of rows of
ublas::matrix
> > for column_major matrices.

Yes. Therefore it needs to return size_m (Hugo explained what size_m is).

> The nearest I can find to a canonical description of leading dimension
> (LDA):
> http://www.netlib.org/lapack/lug/node116.html
>
> Although this is more informative.
>
http://icl.cs.utk.edu/lapack-forum/viewtopic.php?t=217&sid=79b90021ff88b6cc1d18db411b2f7ad4
>
> As I am sure you are all too aware, and you state above, these all show
> the leading dimension as the number of rows. So far I think we agree.
>
> I find the use of m and M non-intuitive, but believe:
>
> size_m = minor size
> size_M = major size
>
> For a column major matrix, I believe the major size is the number of
> columns, so the leading dimension should be the minor size. The debugger
> leads me to confirm these beliefs. But I get thoroughly confused by
major
> and minor sizes, so I would not be too categoric in stating this.

It is correct. See the implementation in boost/numeric/ublas/functional.hpp
(basic_row_major/basic_column_major).

I agree with Hugo that there is a bug. The attached patch fixes it (and has
the advantage that it also works with 1.33). Note that functor_t::size2
returns the minor size in 1.33, i.e. the number of rows for column major
matrices.

Karl, it would be nice if you could put it in.

Georg