From: Karl R. <ru...@iu...> - 2010-06-30 08:40:58
|
Dear Abhinav, thanks for your email and pointing that bug out. As a quick fix, I think it is sufficient to write iter2 = _mat[_mat.size()-1].end(); in the else-statement. This is, however, untested, but will be fixed in the upcoming version 1.0.4. In the meanwhile I can recommend using either the uBLAS types for the initialization of the GPU data or to ensure that the STL vector< map< > > capacity is larger than the size. This can for example be enforced by writing stl_matrix.reserve(rhs.size()+1); in tut3 right after line 131. Again, thanks for pointing that out, our test environment did not complain on that one. Best regards, Karli Abhinav Golas wrote: > Hi, > > I encountered an error while running tut3, the code tried to access an > out of range element of a vector. The relevant code section is: > > tools.hpp: > > const_sparse_matrix_adapted_iterator(std::vector<std::map<unsigned int, > SCALARTYPE> > const & mat, int i, int j) > : _mat(mat), _i(i), _j(j) > { > if (i < static_cast<int>(_mat.size()) && j < static_cast<int>(_mat.size())) > iter2 = _mat[i].begin(); > else > iter2 = _mat[i].end(); > } > > for i == 65025 and _mat.size() == 65025 > > This is encountered for the execution stack: > main.cpp:143 copy(stl_matrix, vcl_coordinate_matrix); > coordinate_matrix.hpp: 217 > copy(tools::const_sparse_matrix_adapter<SCALARTYPE>(cpu_matrix), > gpu_matrix); > coordinate_matrix.hpp: 166 for (typename CPU_MATRIX::const_iterator1 > row_it = cpu_matrix.begin1(); row_it != cpu_matrix.end1(); ++row_it) > tools.hpp: 184 const_iterator1 end1() const { return > const_iterator1(_mat, size1(), size2()); } > tools.hpp: 101 (code given above) > > I'm running this on Visual Studio 2008, on Windows 7, with Core i7 > extreme 965, ATI Radeon 5770 with the latest stream SDK, Boost 1.42 > > Thanks, > Abhinav Golas > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first > > > ------------------------------------------------------------------------ > > _______________________________________________ > Viennacl-support mailing list > Vie...@li... > https://lists.sourceforge.net/lists/listinfo/viennacl-support |