diff --git a/include/boost/numeric/ublas/matrix_assign.hpp b/include/boost/numeric/ublas/matrix_assign.hpp index b8b315db..e950a842 100644 --- a/include/boost/numeric/ublas/matrix_assign.hpp +++ b/include/boost/numeric/ublas/matrix_assign.hpp @@ -42,6 +42,7 @@ namespace boost { namespace numeric { namespace ublas { #endif } + template // This function seems to be big. So we do not let the compiler inline it. // BOOST_UBLAS_INLINE @@ -312,15 +313,15 @@ namespace boost { namespace numeric { namespace ublas { // BOOST_UBLAS_INLINE void indexing_matrix_assign_scalar (F, M &m, const T &t, row_major_tag) { typedef F functor_type; - typedef typename M::difference_type difference_type; - difference_type size1 (m.size1 ()); - difference_type size2 (m.size2 ()); - for (difference_type i = 0; i < size1; ++ i) { + typedef typename M::size_type size_type; + size_type size1 (m.size1 ()); + size_type size2 (m.size2 ()); + for (size_type i = 0; i < size1; ++ i) { #ifndef BOOST_UBLAS_USE_DUFF_DEVICE - for (difference_type j = 0; j < size2; ++ j) + for (size_type j = 0; j < size2; ++ j) functor_type () (m (i, j), t); #else - difference_type j (0); + size_type j (0); DD (size2, 4, r, (functor_type () (m (i, j), t), ++ j)); #endif } @@ -331,15 +332,15 @@ namespace boost { namespace numeric { namespace ublas { // BOOST_UBLAS_INLINE void indexing_matrix_assign_scalar (F, M &m, const T &t, column_major_tag) { typedef F functor_type; - typedef typename M::difference_type difference_type; - difference_type size2 (m.size2 ()); - difference_type size1 (m.size1 ()); - for (difference_type j = 0; j < size2; ++ j) + typedef typename M::size_type size_type; + size_type size2 (m.size2 ()); + size_type size1 (m.size1 ()); + for (size_type j = 0; j < size2; ++ j) { #ifndef BOOST_UBLAS_USE_DUFF_DEVICE - for (difference_type i = 0; i < size1; ++ i) { + for (size_type i = 0; i < size1; ++ i) functor_type () (m (i, j), t); #else - difference_type i (0); + size_type i (0); DD (size1, 4, r, (functor_type () (m (i, j), t), ++ i)); #endif } @@ -357,9 +358,9 @@ namespace boost { namespace numeric { namespace ublas { #elif BOOST_UBLAS_USE_ITERATING iterating_matrix_assign_scalar (functor_type (), m, t, orientation_category ()); #else - typedef typename M::difference_type difference_type; - difference_type size1 (m.size1 ()); - difference_type size2 (m.size2 ()); + typedef typename M::size_type size_type; + size_type size1 (m.size1 ()); + size_type size2 (m.size2 ()); if (size1 >= BOOST_UBLAS_ITERATOR_THRESHOLD && size2 >= BOOST_UBLAS_ITERATOR_THRESHOLD) iterating_matrix_assign_scalar (functor_type (), m, t, orientation_category ()); @@ -606,15 +607,15 @@ namespace boost { namespace numeric { namespace ublas { // BOOST_UBLAS_INLINE void indexing_matrix_assign (F, M &m, const matrix_expression &e, row_major_tag) { typedef F functor_type; - typedef typename M::difference_type difference_type; - difference_type size1 (BOOST_UBLAS_SAME (m.size1 (), e ().size1 ())); - difference_type size2 (BOOST_UBLAS_SAME (m.size2 (), e ().size2 ())); - for (difference_type i = 0; i < size1; ++ i) { + typedef typename M::size_type size_type; + size_type size1 (BOOST_UBLAS_SAME (m.size1 (), e ().size1 ())); + size_type size2 (BOOST_UBLAS_SAME (m.size2 (), e ().size2 ())); + for (size_type i = 0; i < size1; ++ i) { #ifndef BOOST_UBLAS_USE_DUFF_DEVICE - for (difference_type j = 0; j < size2; ++ j) + for (size_type j = 0; j < size2; ++ j) functor_type () (m (i, j), e () (i, j)); #else - difference_type j (0); + size_type j (0); DD (size2, 2, r, (functor_type () (m (i, j), e () (i, j)), ++ j)); #endif } @@ -625,15 +626,15 @@ namespace boost { namespace numeric { namespace ublas { // BOOST_UBLAS_INLINE void indexing_matrix_assign (F, M &m, const matrix_expression &e, column_major_tag) { typedef F functor_type; - typedef typename M::difference_type difference_type; - difference_type size2 (BOOST_UBLAS_SAME (m.size2 (), e ().size2 ())); - difference_type size1 (BOOST_UBLAS_SAME (m.size1 (), e ().size1 ())); - for (difference_type j = 0; j < size2; ++ j) + typedef typename M::size_type size_type; + size_type size2 (BOOST_UBLAS_SAME (m.size2 (), e ().size2 ())); + size_type size1 (BOOST_UBLAS_SAME (m.size1 (), e ().size1 ())); + for (size_type j = 0; j < size2; ++ j) { #ifndef BOOST_UBLAS_USE_DUFF_DEVICE - for (difference_type i = 0; i < size1; ++ i) { + for (size_type i = 0; i < size1; ++ i) functor_type () (m (i, j), e () (i, j)); #else - difference_type i (0); + size_type i (0); DD (size1, 2, r, (functor_type () (m (i, j), e () (i, j)), ++ i)); #endif } @@ -652,8 +653,8 @@ namespace boost { namespace numeric { namespace ublas { iterating_matrix_assign (functor_type (), m, e, orientation_category ()); #else typedef typename M::difference_type difference_type; - difference_type size1 (BOOST_UBLAS_SAME (m.size1 (), e ().size1 ())); - difference_type size2 (BOOST_UBLAS_SAME (m.size2 (), e ().size2 ())); + size_type size1 (BOOST_UBLAS_SAME (m.size1 (), e ().size1 ())); + size_type size2 (BOOST_UBLAS_SAME (m.size2 (), e ().size2 ())); if (size1 >= BOOST_UBLAS_ITERATOR_THRESHOLD && size2 >= BOOST_UBLAS_ITERATOR_THRESHOLD) iterating_matrix_assign (functor_type (), m, e, orientation_category ()); diff --git a/include/boost/numeric/ublas/vector_assign.hpp b/include/boost/numeric/ublas/vector_assign.hpp index 25073210..84f21243 100644 --- a/include/boost/numeric/ublas/vector_assign.hpp +++ b/include/boost/numeric/ublas/vector_assign.hpp @@ -42,6 +42,7 @@ namespace boost { namespace numeric { namespace ublas { #endif } + // Make sparse proxies conformant template // This function seems to be big. So we do not let the compiler inline it. @@ -118,13 +119,13 @@ namespace boost { namespace numeric { namespace ublas { // BOOST_UBLAS_INLINE void indexing_vector_assign_scalar (F, V &v, const T &t) { typedef F functor_type; - typedef typename V::difference_type difference_type; - difference_type size (v.size ()); + typedef typename V::size_type size_type; + size_type size (v.size ()); #ifndef BOOST_UBLAS_USE_DUFF_DEVICE - for (difference_type i = 0; i < size; ++ i) + for (size_type i = 0; i < size; ++ i) functor_type () (v (i), t); #else - difference_type i (0); + size_type i (0); DD (size, 4, r, (functor_type () (v (i), t), ++ i)); #endif } @@ -140,8 +141,8 @@ namespace boost { namespace numeric { namespace ublas { #elif BOOST_UBLAS_USE_ITERATING iterating_vector_assign_scalar (functor_type (), v, t); #else - typedef typename V::difference_type difference_type; - difference_type size (v.size ()); + typedef typename V::size_type size_type; + size_type size (v.size ()); if (size >= BOOST_UBLAS_ITERATOR_THRESHOLD) iterating_vector_assign_scalar (functor_type (), v, t); else @@ -276,13 +277,13 @@ namespace boost { namespace numeric { namespace ublas { // BOOST_UBLAS_INLINE void indexing_vector_assign (F, V &v, const vector_expression &e) { typedef F functor_type; - typedef typename V::difference_type difference_type; - difference_type size (BOOST_UBLAS_SAME (v.size (), e ().size ())); + typedef typename V::size_type size_type; + size_type size (BOOST_UBLAS_SAME (v.size (), e ().size ())); #ifndef BOOST_UBLAS_USE_DUFF_DEVICE - for (difference_type i = 0; i < size; ++ i) + for (size_type i = 0; i < size; ++ i) functor_type () (v (i), e () (i)); #else - difference_type i (0); + size_type i (0); DD (size, 2, r, (functor_type () (v (i), e () (i)), ++ i)); #endif } @@ -298,8 +299,8 @@ namespace boost { namespace numeric { namespace ublas { #elif BOOST_UBLAS_USE_ITERATING iterating_vector_assign (functor_type (), v, e); #else - typedef typename V::difference_type difference_type; - difference_type size (BOOST_UBLAS_SAME (v.size (), e ().size ())); + typedef typename V::size_type size_type; + size_type size (BOOST_UBLAS_SAME (v.size (), e ().size ())); if (size >= BOOST_UBLAS_ITERATOR_THRESHOLD) iterating_vector_assign (functor_type (), v, e); else