Add geom::submatrix

This commit is contained in:
Nikita Lisitsa 2021-12-25 14:19:22 +03:00
parent 2d05fe9ea9
commit 9a50990c5c

View file

@ -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)
{