diff --git a/viennacl/linalg/host_based/sparse_matrix_operations.hpp b/viennacl/linalg/host_based/sparse_matrix_operations.hpp index 3cb738d14..6cfc1ea89 100644 --- a/viennacl/linalg/host_based/sparse_matrix_operations.hpp +++ b/viennacl/linalg/host_based/sparse_matrix_operations.hpp @@ -1807,7 +1807,7 @@ void prod_impl(const viennacl::sliced_ell_matrix & mat, IndexT const * column_indices = detail::extract_raw_pointer(mat.handle2()); IndexT const * block_start = detail::extract_raw_pointer(mat.handle3()); - vcl_size_t num_blocks = mat.size1() / mat.rows_per_block() + 1; + vcl_size_t num_blocks = (mat.size1() - 1) / mat.rows_per_block() + 1; #ifdef VIENNACL_WITH_OPENMP #pragma omp parallel for