| 
					
					
					
				 | 
				@ -1,15 +1,33 @@ | 
			
		
		
	
		
			
				 | 
				 | 
				#include "tracker.h"
 | 
				 | 
				 | 
				#include "tracker.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "src/helpers.h"
 | 
				 | 
				 | 
				#include "src/helpers.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include <storm-pomdp/generator/BeliefSupportTracker.h>
 | 
				 | 
				 | 
				#include <storm-pomdp/generator/BeliefSupportTracker.h>
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include <storm-pomdp/generator/NondeterministicBeliefTracker.h>
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				template<typename ValueType> using SparsePomdp = storm::models::sparse::Pomdp<ValueType>; | 
				 | 
				 | 
				template<typename ValueType> using SparsePomdp = storm::models::sparse::Pomdp<ValueType>; | 
			
		
		
	
		
			
				 | 
				 | 
				template<typename ValueType> using SparsePomdpTracker = storm::generator::BeliefSupportTracker<double>; | 
				 | 
				 | 
				 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				template<typename ValueType> using SparsePomdpTracker = storm::generator::BeliefSupportTracker<ValueType>; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				template<typename ValueType> using NDPomdpTrackerSparse = storm::generator::NondeterministicBeliefTracker<double, storm::generator::SparseBeliefState<double>>; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				void define_tracker(py::module& m) { | 
				 | 
				 | 
				void define_tracker(py::module& m) { | 
			
		
		
	
		
			
				 | 
				 | 
				    py::class_<storm::generator::BeliefSupportTracker<double>> tracker(m, "BeliefSupportTrackerDouble", "Tracker for BeliefSupports"); | 
				 | 
				 | 
				    py::class_<storm::generator::BeliefSupportTracker<double>> tracker(m, "BeliefSupportTrackerDouble", "Tracker for BeliefSupports"); | 
			
		
		
	
		
			
				 | 
				 | 
				    tracker.def(py::init<SparsePomdp<double> const&>(), py::arg("pomdp")); | 
				 | 
				 | 
				    tracker.def(py::init<SparsePomdp<double> const&>(), py::arg("pomdp")); | 
			
		
		
	
		
			
				 | 
				 | 
				    tracker.def("get_current_belief_support", &SparsePomdpTracker<double>::getCurrentBeliefSupport, "What is the support given the trace so far"); | 
				 | 
				 | 
				    tracker.def("get_current_belief_support", &SparsePomdpTracker<double>::getCurrentBeliefSupport, "What is the support given the trace so far"); | 
			
		
		
	
		
			
				 | 
				 | 
				    tracker.def("track", &SparsePomdpTracker<double>::track, py::arg("action"), py::arg("observation")); | 
				 | 
				 | 
				    tracker.def("track", &SparsePomdpTracker<double>::track, py::arg("action"), py::arg("observation")); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    py::class_<storm::generator::SparseBeliefState<double>> sbel(m, "SparseBeliefStateDouble", "Belief state in sparse format"); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    sbel.def("get", &storm::generator::SparseBeliefState<double>::get, py::arg("state")); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    sbel.def_property_readonly("risk", &storm::generator::SparseBeliefState<double>::getRisk); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    sbel.def("__str__", &storm::generator::SparseBeliefState<double>::toString); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    sbel.def_property_readonly("is_valid", &storm::generator::SparseBeliefState<double>::isValid); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    py::class_<NDPomdpTrackerSparse<double>> ndetbelieftracker(m, "NondeterministicBeliefTrackerDoubleSparse", "Tracker for belief states and uncontrollable actions"); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ndetbelieftracker.def(py::init<SparsePomdp<double> const&>(), py::arg("pomdp")); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ndetbelieftracker.def("reset", &NDPomdpTrackerSparse<double>::reset); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ndetbelieftracker.def("set_risk", &NDPomdpTrackerSparse<double>::setRisk, py::arg("risk")); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ndetbelieftracker.def("obtain_current_risk",&NDPomdpTrackerSparse<double>::getCurrentRisk, py::arg("max")=true); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ndetbelieftracker.def("track", &NDPomdpTrackerSparse<double>::track, py::arg("observation")); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ndetbelieftracker.def("obtain_beliefs", &NDPomdpTrackerSparse<double>::getCurrentBeliefs); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ndetbelieftracker.def("obtain_last_observation", &NDPomdpTrackerSparse<double>::getCurrentObservation); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} |