Commit 7dd725cb authored by Davis King's avatar Davis King
Browse files

Made the matrix sub expression operators work with any kind of

integer ranges rather than just long ranges.
parent 17a46669
......@@ -186,9 +186,9 @@ namespace dlib
const matrix_exp<EXPc>& cols
)
{
// the rows and cols matrices must contain elements of type long
COMPILE_TIME_ASSERT((is_same_type<typename EXPr::type,long>::value == true));
COMPILE_TIME_ASSERT((is_same_type<typename EXPc::type,long>::value == true));
// the rows and cols matrices must contain integer elements
COMPILE_TIME_ASSERT(std::numeric_limits<typename EXPr::type>::is_integer);
COMPILE_TIME_ASSERT(std::numeric_limits<typename EXPc::type>::is_integer);
DLIB_ASSERT(0 <= min(rows) && max(rows) < m.nr() && 0 <= min(cols) && max(cols) < m.nc() &&
(rows.nr() == 1 || rows.nc() == 1) && (cols.nr() == 1 || cols.nc() == 1),
......@@ -347,8 +347,8 @@ namespace dlib
const matrix_exp<EXP2>& rows
)
{
// the rows matrix must contain elements of type long
COMPILE_TIME_ASSERT((is_same_type<typename EXP2::type,long>::value == true));
// the rows matrix must contain integer elements
COMPILE_TIME_ASSERT(std::numeric_limits<typename EXP2::type>::is_integer);
DLIB_ASSERT(0 <= min(rows) && max(rows) < m.nr() && (rows.nr() == 1 || rows.nc() == 1),
"\tconst matrix_exp rowm(const matrix_exp& m, const matrix_exp& rows)"
......@@ -502,8 +502,8 @@ namespace dlib
const matrix_exp<EXP2>& cols
)
{
// the cols matrix must contain elements of type long
COMPILE_TIME_ASSERT((is_same_type<typename EXP2::type,long>::value == true));
// the rows matrix must contain integer elements
COMPILE_TIME_ASSERT(std::numeric_limits<typename EXP2::type>::is_integer);
DLIB_ASSERT(0 <= min(cols) && max(cols) < m.nc() && (cols.nr() == 1 || cols.nc() == 1),
"\tconst matrix_exp colm(const matrix_exp& m, const matrix_exp& cols)"
......
......@@ -65,7 +65,7 @@ namespace dlib
);
/*!
requires
- rows and cols contain elements of type long
- rows and cols contain integral elements (e.g. int, long)
- 0 <= min(rows) && max(rows) < m.nr()
- 0 <= min(cols) && max(cols) < m.nc()
- rows.nr() == 1 || rows.nc() == 1
......@@ -197,7 +197,7 @@ namespace dlib
);
/*!
requires
- rows contains elements of type long
- rows contains integral elements (e.g. int, long)
- 0 <= min(rows) && max(rows) < m.nr()
- rows.nr() == 1 || rows.nc() == 1
(i.e. rows must be a vector)
......@@ -284,7 +284,7 @@ namespace dlib
);
/*!
requires
- cols contains elements of type long
- cols contains integral elements (e.g. int, long)
- 0 <= min(cols) && max(cols) < m.nc()
- cols.nr() == 1 || cols.nc() == 1
(i.e. cols must be a vector)
......@@ -365,7 +365,7 @@ namespace dlib
);
/*!
requires
- rows and cols contain elements of type long
- rows and cols contain integral elements (e.g. int, long)
- 0 <= min(rows) && max(rows) < m.nr()
- 0 <= min(cols) && max(cols) < m.nc()
- rows.nr() == 1 || rows.nc() == 1
......@@ -420,7 +420,7 @@ namespace dlib
);
/*!
requires
- rows contains elements of type long
- rows contains integral elements (e.g. int, long)
- 0 <= min(rows) && max(rows) < m.nr()
- rows.nr() == 1 || rows.nc() == 1
(i.e. rows must be a vector)
......@@ -473,7 +473,7 @@ namespace dlib
);
/*!
requires
- cols contains elements of type long
- cols contains integral elements (e.g. int, long)
- 0 <= min(cols) && max(cols) < m.nc()
- cols.nr() == 1 || cols.nc() == 1
(i.e. cols must be a vector)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment