#ifndef GEMMSTONE_INCLUDE_GEMMSTONE_STRATEGY_PARSER_HPP
#define GEMMSTONE_INCLUDE_GEMMSTONE_STRATEGY_PARSER_HPP
#include "gemmstone/config.hpp"
#include "gemmstone/problem.hpp"
#include "gemmstone/strategy.hpp"
#include <string>
GEMMSTONE_NAMESPACE_START
void parseStrategy(const std::string &str, ngen::HW hw, const GEMMProblem &problem, GEMMStrategy &strategy);
void adjustStrategy(ngen::HW hw, const GEMMProblem &problem, GEMMStrategy &strategy, const char *tags = nullptr);
const char *parseLayout(const char *s, MatrixAddressing &atype);
const char *parsePrecision(const char *s, Type &precision);
const char *parsePrecisions(const char *s, Type &precision1, Type &precision2);
std::string unparseStrategy(ngen::HW hw, const GEMMProblem &problem, const GEMMStrategy &strategy);
GEMMSTONE_NAMESPACE_END
#endif