#pragma once #include #include "FullColumn.h" #include "RowTypeMatrix.h" #include "FullRow.h" namespace MbD { template class FullMatrix : public RowTypeMatrix>> { public: FullMatrix() {} FullMatrix(int m, int n) { for (int i = 0; i < m; i++) { auto row = std::make_shared>(n); this->push_back(row); } } FullMatrix(std::initializer_list>> listOfRows) { for (auto row : listOfRows) { this->push_back(row); } } FullMatrix(std::initializer_list> list2D) { for (auto rowList : list2D) { auto row = std::make_shared>(rowList); this->push_back(row); } } void identity(); }; template <> inline void FullMatrix::identity() { this->zeroSelf(); for (int i = 0; i < this->size(); i++) { this->at(i)->at(i) = 1.0; } } using FMatDsptr = std::shared_ptr>; using FMatDsptr = std::shared_ptr>; //using FMatFColDsptr = std::shared_ptr>>>; using FMatFMatDsptr = std::shared_ptr>>>; }