| 
					
					
						
							
						
					
					
				 | 
				@ -4,10 +4,12 @@ | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm/settings/SettingsManager.h"
 | 
				 | 
				 | 
				#include "storm/settings/SettingsManager.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-dft/settings/modules/FaultTreeSettings.h"
 | 
				 | 
				 | 
				#include "storm-dft/settings/modules/FaultTreeSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				#include "storm-dft/settings/modules/DftIOSettings.h"
 | 
				 | 
				 | 
				#include "storm-dft/settings/modules/DftIOSettings.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				#include "storm-dft/storage/dft/DFTIsomorphism.h"
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				template<typename ValueType> using DFT = storm::storage::DFT<ValueType>; | 
				 | 
				 | 
				template<typename ValueType> using DFT = storm::storage::DFT<ValueType>; | 
			
		
		
	
		
			
				 | 
				 | 
				template<typename ValueType> using DFTElement = storm::storage::DFTElement<ValueType>; | 
				 | 
				 | 
				template<typename ValueType> using DFTElement = storm::storage::DFTElement<ValueType>; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				using DFTSymmetries = storm::storage::DFTIndependentSymmetries; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				void define_dft(py::module& m) { | 
				 | 
				 | 
				void define_dft(py::module& m) { | 
			
		
		
	
	
		
			
				| 
					
						
							
						
					
					
						
							
						
					
					
				 | 
				@ -42,6 +44,9 @@ void define_dft(py::module& m) { | 
			
		
		
	
		
			
				 | 
				 | 
				            }, "Get top level element") | 
				 | 
				 | 
				            }, "Get top level element") | 
			
		
		
	
		
			
				 | 
				 | 
				        .def("get_element", &DFT<double>::getElement, "Get DFT element at index", py::arg("index")) | 
				 | 
				 | 
				        .def("get_element", &DFT<double>::getElement, "Get DFT element at index", py::arg("index")) | 
			
		
		
	
		
			
				 | 
				 | 
				        .def("modularisation", &DFT<double>::topModularisation, "Split DFT into independent modules") | 
				 | 
				 | 
				        .def("modularisation", &DFT<double>::topModularisation, "Split DFT into independent modules") | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        .def("symmetries", [](DFT<double>& dft) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                return dft.findSymmetries(dft.colourDFT()); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            }, "Compute symmetries in DFT") | 
			
		
		
	
		
			
				 | 
				 | 
				    ; | 
				 | 
				 | 
				    ; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				    py::class_<DFT<storm::RationalFunction>, std::shared_ptr<DFT<storm::RationalFunction>>>(m, "ParametricDFT", "Parametric DFT") | 
				 | 
				 | 
				    py::class_<DFT<storm::RationalFunction>, std::shared_ptr<DFT<storm::RationalFunction>>>(m, "ParametricDFT", "Parametric DFT") | 
			
		
		
	
	
		
			
				| 
					
					
					
						
							
						
					
				 | 
				@ -55,6 +60,18 @@ void define_dft(py::module& m) { | 
			
		
		
	
		
			
				 | 
				 | 
				            }, "Get top level element") | 
				 | 
				 | 
				            }, "Get top level element") | 
			
		
		
	
		
			
				 | 
				 | 
				        .def("get_element", &DFT<storm::RationalFunction>::getElement, "Get DFT element at index", py::arg("index")) | 
				 | 
				 | 
				        .def("get_element", &DFT<storm::RationalFunction>::getElement, "Get DFT element at index", py::arg("index")) | 
			
		
		
	
		
			
				 | 
				 | 
				        .def("modularisation", &DFT<storm::RationalFunction>::topModularisation, "Split DFT into independent modules") | 
				 | 
				 | 
				        .def("modularisation", &DFT<storm::RationalFunction>::topModularisation, "Split DFT into independent modules") | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        .def("symmetries", [](DFT<storm::RationalFunction>& dft) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				                return dft.findSymmetries(dft.colourDFT()); | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				            }, "Compute symmetries in DFT") | 
			
		
		
	
		
			
				 | 
				 | 
				    ; | 
				 | 
				 | 
				    ; | 
			
		
		
	
		
			
				 | 
				 | 
				
 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				} | 
				 | 
				 | 
				} | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				void define_symmetries(py::module& m) { | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				
 | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    py::class_<DFTSymmetries, std::shared_ptr<DFTSymmetries>>(m, "DFTSymmetries", "Symmetries in DFT") | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        .def_readonly("groups", &DFTSymmetries::groups, "Symmetry groups") | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				        .def("__str__", &streamToString<DFTSymmetries>) | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				    ; | 
			
		
		
	
		
			
				 | 
				 | 
				 | 
				 | 
				 | 
				} |