From e624d81e54ae481383afbd772bf87850bf75f2d7 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 22 Feb 2019 23:08:15 +0100 Subject: Undo directory structure change --- include/mm/mmmatrix.hpp | 59 ------------------------------------------------- 1 file changed, 59 deletions(-) delete mode 100644 include/mm/mmmatrix.hpp (limited to 'include/mm/mmmatrix.hpp') diff --git a/include/mm/mmmatrix.hpp b/include/mm/mmmatrix.hpp deleted file mode 100644 index 7934d87..0000000 --- a/include/mm/mmmatrix.hpp +++ /dev/null @@ -1,59 +0,0 @@ -/* mmmatrix.hpp - * Part of Mathematical library built (ab)using Modern C++ 17 abstractions. - * - * This library is not intended to be _performant_, it does not contain - * hand written SMID / SSE / AVX optimizations. It is instead an example - * of highly abstracted code, where matrices can contain any data type. - * - * As a challenge, the matrix data structure has been built on a container - * of static capacity. But if a dynamic base container is needed, the code - * should be easily modifiable to add further abstraction, by templating - * the container and possibly the allocator. - * - * Naoki Pross - * 2018 ~ 2019 - */ -#pragma once - -#include -#include - -namespace mm { - template - class basic_matrix; -} - -template -class mm::basic_matrix { -public: - using type = T; - - static constexpr std::size_t rows = Rows; - static constexpr std::size_t cols = Cols; - - basic_matrix() {} - - template - basic_matrix(const basic_matrix& other); - - const T& at(std::size_t row, std::size_t col); - -private: - std::array data; -}; - - - -template -template -mm::basic_matrix::basic_matrix(const basic_matrix& other) { - static_assert((ORows <= Rows), - "cannot copy a taller matrix into a smaller one" - ); - - static_assert((OCols <= Cols), - "cannot copy a larger matrix into a smaller one" - ); - - std::copy(std::begin(other.data), std::end(other.data), data.begin()); -} -- cgit v1.2.1