Anyone can explain a bit about permutation_matrix class in lu.hpp, please. I assume that it stores value i at position i.
Current version has an inconvenience: I would need a resize() method to reuse (when possible) the underlying memory of its vector base class.
Maybe a a simpler (minimalistic) approach can be used:
template <typename T = std::size_t>
class permutation_matrix
{
public:
permutation_matrix(T size) : m_size(size) {}
T operator() (T i) const {return i;} // check size in debug mode
T size() const {return m_size();}
private:
T m_size;
};
As only const operator() is used, there is no need to actually store data i at position i, right?