Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4034: better vector/matrix assignment (or initialization)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-03-28 20:39:42
#4034: better vector/matrix assignment (or initialization)
------------------------------+---------------------------------------------
Reporter: guwi17 | Owner: guwi17
Type: Patches | Status: new
Milestone: To Be Determined | Component: uBLAS
Version: Boost 1.42.0 | Severity: Optimization
Keywords: assigment |
------------------------------+---------------------------------------------
Comment(by nasos_i@â¦):
I attach a whole new version of the assignment operator
(assignment.patch.tar.gz). The patch contains a header assignment.hpp and
unit tests (test_assignment.cpp). I think some sophisticated assignment
tricks can be used with those operators (still finding news ways they can
be used). This version is a complete rewrite, but in terms of interface
the differences are the following:
0. Name was changed to assignment after Boost.Assignment.
1. non_vector(T i) was removed and was replaced by move(T i)
2. move(T i, T j) was added for matrix expression traversing
3. Absolute traverser was added so that move_to(T i) and move_to(T i, T j)
can be used on vector and matrix containers respectively.
4. mat1 << mat2, ... support was added
5. A simple traits mechanism so that fill policy can be chosen was
implemented. This allows for:
{{{
compressed_matrix<double> cm;
cm << fill_policy::sparse_push_back(),
1, 2, mat, vec, vec_expres, ...;
}}}
6. A number of test cases were added in the spirit of
http://svn.boost.org/svn/boost/trunk/libs/numeric/ublas/test/test_coordinate_matrix_sort.cpp.
They patch looks ready for merging to ublas, but of course this is only
under my eyes. Comments, suggestions are HIGHLY desired.
Beside the sparse_push_back policy, performance was not considered but
with the fill_policy tag it looks that we can implement more sophisticated
assignments now.
I can write a small tutorial or guide, but I would like to now the format
I should provide it in.
Best
Nasos
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4034#comment:1> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:02 UTC