Joaquim DuranThis error happens in the 3rd type <long>, why does the tests pass in <double> and <float>?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):OTOH, there are other issues:
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);
[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
2014-04-04 2:24 GMT+02:00 Joaquim Duran <jduran.gm@gmail.com>:
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 <nasos_i@hotmail.com>:
Hmm, my message seems chopped, so here we go again:Please note that I made some minor changes for debugging reasons in test_matrix_vector.cpp.
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?
-Nasos
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.
-Nasos
Date: Sat, 17 Aug 2013 17:36:32 +0200
From: jduran.gm@gmail.com
To: ublas@lists.boost.org
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 <guwi17@gmx.de>
Hello,
Am Saturday 22 September 2012 schrieb Oswin Krause:
> Hi,
>
> Here is my slightly adapted version of the range. I didn't find thesee https://svn.boost.org/trac/boost/ticket/7411
> 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.
@Joaquim: does this solve your problem?
mfg
Gunter
_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: jduran.gm@gmail.com
_______________________________________________ ublas mailing list ublas@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/ublas Sent to: nasos_i@hotmail.com
_______________________________________________ ublas mailing list ublas@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/ublas Sent to: nasos_i@hotmail.com
_______________________________________________
ublas mailing list
ublas@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/ublas
Sent to: jduran.gm@gmail.com
_______________________________________________ ublas mailing list ublas@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/ublas Sent to: athanasios.iliopoulos.ctr.gr@nrl.navy.mil