20 #include <unordered_map> 
   33     std::unordered_map<std::string, std::shared_ptr<Relation>> 
relationMap;
 
   53         std::ostringstream output;
 
   54         output << 
"ProgramRun:" << 
getRuntime() << 
"\nRelations:\n";
 
   56             output << r.second->toString() << 
"\n";
 
   61     inline const std::unordered_map<std::string, std::shared_ptr<Relation>>& 
getRelationMap()
 const {
 
   81         std::chrono::microseconds result{0};
 
   83             result += item.second->getLoadtime();
 
   89         std::chrono::microseconds result{0};
 
   91             result += item.second->getSavetime();
 
   99             result += item.second->size();
 
  107             result += item.second->getTotalRecursiveRuleSize();
 
  113         std::chrono::microseconds result{0};
 
  115             result += item.second->getCopyTime();
 
  121         std::chrono::microseconds result{0};
 
  123             result += item.second->getRecTime();
 
  136             std::chrono::microseconds start, std::chrono::microseconds end)
 const {
 
  137         std::set<std::shared_ptr<Relation>> result;
 
  139             if (cur.second->getStarttime() <= end && cur.second->getEndtime() >= start) {
 
  140                 result.insert(cur.second);
 
  146     inline std::string 
formatTime(std::chrono::microseconds runtime)
 const {
 
  150     inline std::string 
formatNum(
int precision, 
long number)
 const {
 
  154     inline std::vector<std::vector<std::string>> 
formatTable(
Table& table, 
int precision)
 const {