Re: [BLAS bindings] help appreciated on using trmv and gbmv

Rutger ter Borg <[email protected]>
Newsgroups gmane.comp.lib.boost.ublas
Message-ID <[email protected]>
On 2012-10-10 09:38, Florent Teichteil wrote:
>
> Indeed, if I clear B before filling it, I get correct results with row
> major storage, but not with column major. Am I doing something wrong?
> Moreover, I thought that banded matrices only store data within the
> bands, so I don't understand why I have to clear B before filling only
> the bands.

Your code doesn't fill anything in the first row of your matrices. I 
guess you should look into what the following does in C++:

std::size_t i = 0;
std::cout << (i-1) << std::endl;

This wasn't your only bug: please debug your code before coming to us.


>
> This is the more confusing part. The bindings for triangular matrices
> work only with triangular adaptors of dense matrices (not with
> triangular matrices), but the bindings for banded matrices work only
> with banded matrices (not with banded adaptors of dense matrices).
> Moreover, depending on the context, incompatible bindings silently
> compile or don't compile. At the end, as an end-user of the API, it is
> quite difficult to distinguish safe operations from insane ones. Perhaps
> some doxygen comments in the code would help programmers know what is
> allowed or not?

Of course, the bindings can assert for these cases, we can add the 
following support:

  * add static asserts on data_structure w.r.t. the routine called 
(i.e., BOOST_STATIC_ASSERT( (has_band_array<MatrixA>::..) )). 
has_band_array is already available.
  * add support for banded matrices in the bindings::trans() function
  * check if/when a stride_major_op() and related functions are required
  * test the above.

Unfortunately, I already spent valuable time on debugging your code. If 
your code would have been correct to begin with, maybe I could have used 
that time for adding the items above.

Cheers,

Rutger



_______________________________________________
ublas mailing list
[email protected]
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.