STAMINA/STORM 0.1
Infinite state-space truncator which generates a probability within a window
StateIndexArray.h
1#ifndef STATEINDEXARRAY_H
2#define STATEINDEXARRAY_H
3
4#include <boost/pool/object_pool.hpp>
5
6#include <vector>
7#include <cstdint>
8#include <memory>
9
17namespace stamina {
18 // Pool pointer is not within the util namespace
19 /* template <typename T, typename P = boost::object_pool<T>>
20 struct poolDeleter {
21
22 private:
23 P & pool;
24 }; */
25 namespace util {
26 template <typename StateType, typename ProbabilityStateType>
28 public:
29 StateIndexArray(uint8_t blockSizeExponent = 15); // 2 ^ 15
34 void clear();
40 void reserve(uint32_t numToReserve);
49 ProbabilityStateType * get(StateType index);
55 void put(StateType index, ProbabilityStateType * probabilityState);
61 std::vector<StateType> getPerimeterStates();
65 uint32_t getNumberTerminal();
66 protected:
73 uint32_t sizeToActualSize(uint32_t size);
74 private:
75 uint32_t numElements;
76 uint32_t blockSize;
77 std::vector<std::shared_ptr<ProbabilityStateType *>> stateArray;
78 };
79 }
80}
81
82#endif // STATEINDEXARRAY_H
Definition: StateIndexArray.h:27
std::vector< StateType > getPerimeterStates()
Definition: StateIndexArray.cpp:93
uint32_t sizeToActualSize(uint32_t size)
Definition: StateIndexArray.cpp:107
uint32_t getNumberTerminal()
Definition: StateIndexArray.cpp:87
void clear()
Definition: StateIndexArray.cpp:30
void reserve(uint32_t numToReserve)
Definition: StateIndexArray.cpp:36
void put(StateType index, ProbabilityStateType *probabilityState)
Definition: StateIndexArray.cpp:65
ProbabilityStateType * get(StateType index)
Definition: StateIndexArray.cpp:54
Definition: ExplicitTruncatedModelBuilder.cpp:40