12#ifndef MCRL2_PBES_SOLUTION_STRATEGY_H
13#define MCRL2_PBES_SOLUTION_STRATEGY_H
16#include "mcrl2/utilities/exception.h"
20namespace mcrl2::pbes_system
23using solution_strategy_t =
enum
37 case small_progr_measures:
41 throw mcrl2::runtime_error(
"unknown solution strategy");
45std::ostream& operator<<(
std::ostream& os,
const solution_strategy_t s)
47 os << solution_strategy_to_string(s);
60 return small_progr_measures;
64 throw mcrl2::
runtime_error(
"unsupported solution strategy '" + s +
"'");
75 s = parse_solution_strategy(str);
79 is.setstate(
std::ios_base::failbit);
90 return "Gauss elimination (inefficient; plain implementation)";
92 case small_progr_measures:
93 return "Small progress measures";
96 throw mcrl2::runtime_error(
"unknown solution strategy");
Standard exception class for reporting runtime errors.
static std::string solution_strategy_to_string(const solution_strategy_t s)
static solution_strategy_t parse_solution_strategy(const std::string &s)
static std::string description(const solution_strategy_t s)
static std::istream & operator>>(std::istream &is, solution_strategy_t &s)
std::size_t operator()(const std::vector< X > &v) const