Re: Matrix with vector interface.
Joaquim Duran <[email protected]>
| Newsgroups | gmane.comp.lib.boost.ublas |
|---|---|
| Message-ID | <CANdawSFoeu4P+NLoCZQ6kv-7Xj5K_38rRmeRNs+QemFBwhxtzA@mail.gmail.com> |
All tests have been executed successfully. Joaquim Duran 2014-04-07 16:23 GMT+02:00 Nasos Iliopoulos <[email protected]>: > Joaquim, > The problem was with bool equals... function in vector_assign. I modified > it to work with integral types and not only floating point. The changes > have been pushed in > https://github.com/uBLAS/ublas/tree/ublas_feature0011_mvrange_interface_t7411 > > Can you please check if the tests pass now? > > -Nasos > > > On 04/06/2014 07:17 PM, Joaquim Duran wrote: > > I've found the found the reason of that error: dense matrix could be > resized by preserving its contents, but spare matrix must be resized > without preserving its contents. So the resize test, should be modified, as > in this patch (pending of commit to git): > > diff --git a/test/test_matrix_vector.cpp b/test/test_matrix_vector.cpp > index a95763e..955f8dc 100644 > --- a/test/test_matrix_vector.cpp > +++ b/test/test_matrix_vector.cpp > @@ -68,7 +68,7 @@ bool test_matrix_row_facade() { > pass &= (matrix.size2() == num_cols); > > typename Matrix::size_type new_num_rows = 6; > - rows.resize(new_num_rows); > + rows.resize(new_num_rows, false); > pass &= (matrix.size1() == new_num_rows); > pass &= (rows.size() == new_num_rows); > pass &= (matrix.size2() == num_cols); > @@ -222,7 +222,7 @@ bool test_matrix_column_facade() { > pass &= (matrix.size1() == num_rows); > > typename Matrix::size_type new_num_cols = 6; > - columns.resize(new_num_cols); > + columns.resize(new_num_cols, false); > pass &= (matrix.size2() == new_num_cols); > pass &= (columns.size() == new_num_cols); > pass &= (matrix.size1() == num_rows); > > > OTOH, there are other issues: > > [Debug>> Testing mapped_matrix... > [Debug>> test_matrix_row_facade: resize > [Debug>> test_matrix_row_facade: operator() > [Debug>> test_matrix_row_facade: operator[] > [Debug>> test_matrix_row_facade: operator[] const > [Debug>> test_matrix_row_facade: const iterator > [Debug>> test_matrix_row_facade: iterator > [Debug>> test_matrix_row_facade: reverse iterator > [Debug>> test_matrix_row_facade: const reverse iterator > [Debug>> test_matrix_row_facade: resize > [Debug>> test_matrix_row_facade: operator() > [Debug>> test_matrix_row_facade: operator[] > [Debug>> test_matrix_row_facade: operator[] const > [Debug>> test_matrix_row_facade: const iterator > [Debug>> test_matrix_row_facade: iterator > [Debug>> test_matrix_row_facade: reverse iterator > [Debug>> test_matrix_row_facade: const reverse iterator > [Debug>> test_matrix_row_facade: resize > [Debug>> test_matrix_row_facade: operator() > Check failed in file > ../include/boost/numeric/ublas/detail/vector_assign.hpp at line 370: > detail::expression_type_check (v, cv) > [Error (test_matrix_vector.cpp:main:471)>> external logic or bad condition > of inputs > > This error happens in the 3rd type <long>, why does the tests pass in > <double> and <float>? > > Joaquim Duran > > > > > 2014-04-04 2:24 GMT+02:00 Joaquim Duran <[email protected]>: > >> Hello, >> >> I've modified your traces to see where the tests fails, but no one >> fails. There are some checks in matrices that fails. The log has been >> attached. I'll continue checking. >> >> >> Joaquim Duran >> >> >> >> 2014-04-03 2:11 GMT+02:00 Nasos Iliopoulos <[email protected]>: >> >> Hmm, my message seems chopped, so here we go again: >>> >>> >>> Joaquim, >>> I merged your pull request into >>> https://github.com/uBLAS/ublas/tree/ublas_feature0011_mvrange_interface_t7411, >>> but it seems that the unit test fails for sparse matrices. Before I start >>> investigating it, do you have any ideas why? >>> >>> Please note that I made some minor changes for debugging reasons in >>> test_matrix_vector.cpp. >>> >>> -Nasos >>> ------------------------------ >>> From: [email protected] >>> To: [email protected] >>> Date: Wed, 2 Apr 2014 11:49:30 -0400 >>> >>> Subject: Re: [ublas] Matrix with vector interface. >>> >>> Joaquim, >>> I merged your pull request into >>> https://github.com/uBLAS/ublas/tree/ublas_feature0011_mvrange_interface_t7411, >>> but it seems that the unit test fails for sparse matrices. Before I start >>> investigating it, do you have any ideas why? >>> >>> Please note that I made some minor changes for debuging reasons in >>> test_matrix_vector.cpp<https://github.com/uBLAS/ublas/blob/ublas_feature0011_mvrange_interface_t7411/test/test_matrix_vector.cpp> >>> . >>> >>> -Nasos >>> >>> ------------------------------ >>> Date: Sat, 17 Aug 2013 17:36:32 +0200 >>> From: [email protected] >>> To: [email protected] >>> Subject: Re: [ublas] Matrix with vector interface. >>> >>> Hello all, >>> >>> I've been used the matrix row/column range successfully. Also, I've >>> modified the code of Oswin and I've generalized a little: >>> >>> - Added reverse iterators. >>> - Resize of matrix >>> * From matrix_row facade the number of rows of the matrix could be >>> changed but not the number of columns. >>> * From matrix_column facade the number of columns of the matrix could >>> be changed but not the number of rows. >>> >>> I would like to update the source code to ticked 7411 if there is no >>> inconvenient for your part. I've followed the style of Oswin. Also, I've >>> provided an executable but not tests cases, as Oswin did, >>> >>> Joaquim Duran >>> >>> >>> 2012/9/23 Gunter Winkler <[email protected]> >>> >>> Hello, >>> >>> Am Saturday 22 September 2012 schrieb Oswin Krause: >>> > Hi, >>> > >>> > Here is my slightly adapted version of the range. I didn't find the >>> > boost coding guidelines so i just tried to fit it to other ublas >>> > headers(with limited success). Since i am not breathing standardese, >>> > I am not sure whether i am 100% correct in every aspect. >>> > >>> > Out of standard reasons, the implementation using proxy objects like >>> > matrix_row does not lead to a random_access_iterator even though it >>> > meets all traversal requirements. So algorithms like >>> > random_shuffle(and sort(?)) will work in practice but overeager >>> > compilers as for example MSVC will complain in debug mode. A >>> > solution to this is lying about the iterator category, but since i >>> > am a honest person, i don't ;) >>> > >>> > the implementation comes with a short test case, but i can also add a >>> > bit more if required. >>> >>> see https://svn.boost.org/trac/boost/ticket/7411 >>> >>> @Joaquim: does this solve your problem? >>> >>> mfg >>> Gunter >>> >>> _______________________________________________ >>> ublas mailing list >>> [email protected] >>> http://lists.boost.org/mailman/listinfo.cgi/ublas >>> Sent to: [email protected] >>> >>> >>> >>> _______________________________________________ ublas mailing list >>> [email protected] http://lists.boost.org/mailman/listinfo.cgi/ublasSent to: >>> [email protected] >>> >>> _______________________________________________ ublas mailing list >>> [email protected] http://lists.boost.org/mailman/listinfo.cgi/ublasSent to: >>> [email protected] >>> >>> _______________________________________________ >>> ublas mailing list >>> [email protected] >>> http://lists.boost.org/mailman/listinfo.cgi/ublas >>> Sent to: [email protected] >>> >> >> > > > _______________________________________________ > ublas mailing [email protected]://lists.boost.org/mailman/listinfo.cgi/ublas > > Sent to: [email protected] > > > > _______________________________________________ > ublas mailing list > [email protected] > http://lists.boost.org/mailman/listinfo.cgi/ublas > Sent to: [email protected] >