Boost logo

Ublas :

Subject: [ublas] sparse_prod
From: Johannes Keustermans (johannes.keustermans_at_[hidden])
Date: 2014-02-28 05:43:50


Dear all,

 

 

I believe there is an implementation error in the sparse_prod
implementation:

 

line 73 is m
(it1.index1 (), j) = temporary (j);

but (in my opinion) should be m (it1.index1 (), j) +=
temporary (j);

 

Similarly for line 132 m (i,
it2.index2 ()) = temporary (i);

But (in my opinion) should be m (i, it2.index2 ()) +=
temporary (i);

 

Using the current implementation the following two approaches give a
different result,

 

sparse_prod( matrix_left, matrix_right, matrix_result, false );

matrix_result += prod( matrix_left, matrix_right );

 

while, in fact they should give the same result. Adapting the sparse_prod
implementation as suggested above results in both lines of code giving the
same result.

 

 

Kind regards,

Johannes Keustermans