#include "multidimensional.hpp" #include #include namespace arrays { auto create_matrix(const int rows, const int cols, const int fill) -> Matrix { return Matrix(rows, std::vector(cols, fill)); } auto transpose(const Matrix& matrix) -> Matrix { auto new_mat = Matrix(matrix[0].size(), std::vector(matrix.size(), 0)); for (size_t row = 0; row < matrix.size(); ++row) { for (size_t col = 0; col < matrix[row].size(); ++col) { new_mat[col][row] = matrix[row][col]; } } return new_mat; } auto row_sums(const Matrix& matrix) -> std::vector { auto sums = std::vector(matrix.size(), 0); auto idx = 0; for (auto row: matrix) { sums[idx] = std::ranges::fold_left(row, 0, std::plus{}); idx++; } return sums; } } // namespace arrays