From 0c677ddd4cab7b88b5373f573bcaf752d7322007 Mon Sep 17 00:00:00 2001 From: Michael Stevens Date: Tue, 21 Sep 2004 22:27:38 +0000 Subject: [PATCH] fix slice compose negative start check --- include/boost/numeric/ublas/storage.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/numeric/ublas/storage.hpp b/include/boost/numeric/ublas/storage.hpp index 84f9b8c8..b8cd0127 100644 --- a/include/boost/numeric/ublas/storage.hpp +++ b/include/boost/numeric/ublas/storage.hpp @@ -1133,12 +1133,12 @@ namespace boost { namespace numeric { namespace ublas { // Composition BOOST_UBLAS_INLINE basic_slice compose (const basic_range &r) const { - BOOST_UBLAS_CHECK (start_ >= stride_ * r.start (), bad_index ()); + BOOST_UBLAS_CHECK (stride_ >=0 || start_ >= -stride_ * r.start(), bad_index ()); return basic_slice (start_ + stride_ * r.start (), stride_, r.size ()); } BOOST_UBLAS_INLINE basic_slice compose (const basic_slice &s) const { - BOOST_UBLAS_CHECK (start_ >= stride_ * s.start_, bad_index ()); + BOOST_UBLAS_CHECK (stride_ >=0 || start_ >= -stride_ * s.start_, bad_index ()); return basic_slice (start_ + stride_ * s.start_, stride_ * s.stride_, s.size_); }