27 lines
1.4 KiB

#include "memory.h"
#include "src/helpers.h"
#include <storm-pomdp/storage/PomdpMemory.h>
void define_memory(py::module& m) {
py::class_<storm::storage::PomdpMemory> memory(m, "PomdpMemory", "Memory for POMDP policies");
memory.def_property_readonly("nr_states",&storm::storage::PomdpMemory::getNumberOfStates, "How many states does the memory structure have");
// Trivial, FixedCounter, SelectiveCounter, FixedRing, SelectiveRing, SettableBits, Full
py::enum_<storm::storage::PomdpMemoryPattern>(m, "PomdpMemoryPattern", "Memory pattern for POMDP memory")
.value("trivial", storm::storage::PomdpMemoryPattern::Trivial)
.value("fixed_counter", storm::storage::PomdpMemoryPattern::FixedCounter)
.value("selective_counter", storm::storage::PomdpMemoryPattern::SelectiveCounter)
.value("fixed_ring", storm::storage::PomdpMemoryPattern::FixedRing)
.value("selective_ring", storm::storage::PomdpMemoryPattern::SelectiveRing)
.value("settable_bits", storm::storage::PomdpMemoryPattern::SettableBits)
.value("full", storm::storage::PomdpMemoryPattern::Full)
;
py::class_<storm::storage::PomdpMemoryBuilder> memorybuilder(m, "PomdpMemoryBuilder", "MemoryBuilder for POMDP policies");
memorybuilder.def(py::init<>());
memorybuilder.def("build", &storm::storage::PomdpMemoryBuilder::build, py::arg("pattern"), py::arg("nr_states"));
}