#ifndef SAMPLE_HPP #define SAMPLE_HPP #include "Level.hpp" #include "matrixgraph/CellMatrixGraph.hpp" #include "Algebra.hpp" #include struct SampleID { Level level; int number; bool coarse; SampleID() {} SampleID(Level level, int number, bool coarse) : level(level), number(number), coarse(coarse) {} int MGLevel() const; std::string Str() const; }; struct SampleSolution { std::string name = "U"; SampleID id; double Q; double Cost; Vector U; SampleSolution(MatrixGraph *solMGraph) : U(Vector((*solMGraph))) { Init(); } SampleSolution(MatrixGraphs *solMGraphs, int mGlevel) : U(Vector((*solMGraphs)[mGlevel])) { Init(); } SampleSolution(MatrixGraphs *solMGraphs, const SampleID &id) : id(id), U(Vector((*solMGraphs)[id.MGLevel()])) { Init(); } void Init(); }; #endif //SAMPLE_HPP