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


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