1 #ifndef AI_TOOLBOX_POMDP_TYPE_TRAITS_HEADER_FILE
2 #define AI_TOOLBOX_POMDP_TYPE_TRAITS_HEADER_FILE
30 { m.sampleSOR(m.getS(), m.getA()) } -> std::convertible_to<std::tuple<size_t, size_t, double>>;
52 concept
IsModel = MDP::IsModel<M> && IsGenerativeModel<M> && HasIntegralObservationSpace<M> && requires (M m,
size_t s,
size_t a) {
53 { m.getObservationProbability(s, a, s) } -> std::convertible_to<double>;
74 concept
IsModelEigen = MDP::IsModelEigen<M> && IsModel<M> && requires (M m,
size_t a) {
75 m.getObservationFunction(a);
76 requires
IsDerivedFromEigen<std::remove_cvref_t<decltype((m.getObservationFunction(a)))>>;