Engine Selectors¶
Header: fiction/technology/sidb/simulation/engine.hpp
-
inline std::optional<engine> fiction::sidb::simulation::get_engine(const std::string_view &name) noexcept¶
Returns a simulation engine by case-insensitive name.
- Parameters:
name – Name of the desired SiDB simulation engine.
- Returns:
SiDB simulation engine that matches the given
name, orstd::nulloptif no simulation engine by the givennameexists.
-
enum class fiction::sidb::simulation::engine : uint8_t¶
Selector for the available SiDB simulation engines.
Values:
-
enumerator EXGS¶
Exhaustive Ground State Search (EXGS) is an exact simulation engine that always has exponential runtime.
-
enumerator QUICKSIM¶
QuickSim is a heuristic simulation engine that only requires polynomial runtime.
-
enumerator QUICKEXACT¶
QuickExact is also an exact simulation engine that requires exponential runtime, but it scales a lot better than ExGS due to its effective search-space pruning.
-
enumerator CLUSTERCOMPLETE¶
ClusterComplete is a novel exact simulation engine that requires exponential runtime, though, depending on the simulation problem, it effectively reduces the base number by a real number, thus allowing problem sizes that were previously considered astronomical in size. Inherent to the simulation methodology that does not depend on the simulation base, it simulates very effectively for either base number (2 or 3).
-
enumerator EXGS¶
-
enum class fiction::sidb::simulation::exact_engine : uint8_t¶
Selector exclusively for exact SiDB simulation engines.
Values:
-
enumerator EXGS¶
Exhaustive Ground State Search (EXGS) is an exact simulation engine that always has exponential runtime.
-
enumerator QUICKEXACT¶
QuickExact is also an exact simulation engine that requires exponential runtime, but it scales a lot better than ExGS due to its effective search-space pruning.
-
enumerator CLUSTERCOMPLETE¶
ClusterComplete is a novel exact simulation engine that requires exponential runtime, though, depending on the simulation problem, it effectively reduces the base number by a real number, thus allowing problem sizes that were previously considered astronomical. Inherent to the simulation methodology that does not depend on the simulation base, it simulates very effectively for either base number (2 or 3).
-
enumerator EXGS¶
-
enum class fiction::sidb::simulation::heuristic_engine : uint8_t¶
Selector exclusively for heuristic SiDB simulation engines.
Values:
-
enumerator QUICKSIM¶
QuickSim is a heuristic simulation engine that only requires polynomial runtime.
-
enumerator QUICKSIM¶
-
template<typename EngineType>
std::string_view fiction::sidb::simulation::engine_name(const EngineType &eng) noexcept¶ Returns the name of the given simulation engine.
- Template Parameters:
EngineType – The type of the SiDB simulation engine (exhaustive/heuristic/generic).
- Parameters:
eng – An SiDB simulation engine.
- Returns:
The name of the simulation engine.
- class sidb_simulation_engine(*values)¶
Selector for the available SiDB simulation engines.
- EXGS = 0¶
- QUICKSIM = 1¶
- QUICKEXACT = 2¶
- CLUSTERCOMPLETE = 3¶
- class exact_sidb_simulation_engine(*values)¶
Selector exclusively for exact SiDB simulation engines.
- EXGS = 0¶
- QUICKEXACT = 1¶
- CLUSTERCOMPLETE = 2¶
- class heuristic_sidb_simulation_engine(*values)¶
Selector exclusively for heuristic SiDB simulation engines.
- QUICKSIM = 0¶
- sidb_simulation_engine_name(engine: sidb_simulation_engine) str¶
- sidb_simulation_engine_name(engine: exact_sidb_simulation_engine) str
- sidb_simulation_engine_name(engine: heuristic_sidb_simulation_engine) str
Returns the name of the given simulation engine.
- Parameters:
engine – An SiDB simulation engine.
- Template Args:
EngineType – The type of the SiDB simulation engine (exhaustive/heuristic/generic).
- Returns:
The name of the simulation engine.