Add geom::submatrix
This commit is contained in:
parent
2d05fe9ea9
commit
9a50990c5c
1 changed files with 19 additions and 0 deletions
|
|
@ -303,6 +303,25 @@ namespace psemek::geom
|
|||
return r;
|
||||
}
|
||||
|
||||
template <std::size_t R1, std::size_t C1, std::size_t R2, std::size_t C2, typename T, std::size_t R, std::size_t C>
|
||||
matrix<T, R2 - R1, C2 - C1> submatrix(matrix<T, R, C> const & m)
|
||||
{
|
||||
static_assert(R1 < R2);
|
||||
static_assert(C1 < C2);
|
||||
static_assert(R2 <= R);
|
||||
static_assert(C2 <= C);
|
||||
|
||||
matrix<T, R2 - R1, C2 - C1> result;
|
||||
for (std::size_t i = 0; i < R2 - R1; ++i)
|
||||
{
|
||||
for (std::size_t j = 0; j < C2 - C1; ++j)
|
||||
{
|
||||
result[i][j] = m[i + R1][j + C1];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
template <typename T, std::size_t R, std::size_t C>
|
||||
std::ostream & operator << (std::ostream & os, matrix<T, R, C> const & m)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue