|  | @ -267,7 +267,7 @@ namespace storm { | 
		
	
		
			
				|  |  |                         // Vd
 |  |  |                         // Vd
 | 
		
	
		
			
				|  |  |                         res = storm::utility::zero<ValueType>(); |  |  |                         res = storm::utility::zero<ValueType>(); | 
		
	
		
			
				|  |  |                         for (uint64_t i = k ; i<N ; i++){ |  |  |                         for (uint64_t i = k ; i<N ; i++){ | 
		
	
		
			
				|  |  |                             if (i < poisson.size()){ |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                             if (poisson[i]>1e-300){ | 
		
	
		
			
				|  |  |                                 ValueType between = poisson[i]; |  |  |                                 ValueType between = poisson[i]; | 
		
	
		
			
				|  |  |                                 res+=between; |  |  |                                 res+=between; | 
		
	
		
			
				|  |  |                             } |  |  |                             } | 
		
	
	
		
			
				|  | @ -652,6 +652,8 @@ namespace storm { | 
		
	
		
			
				|  |  |                     } |  |  |                     } | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |  |  |  |                     std::vector<double> poisson = foxGlynnProb(lambda*T, N+1, epsilon*kappa); | 
		
	
		
			
				|  |  |  |  |  | 
 | 
		
	
		
			
				|  |  |                     // (4) define vectors/matrices
 |  |  |                     // (4) define vectors/matrices
 | 
		
	
		
			
				|  |  |                     std::vector<ValueType> init(numberOfStates, -1); |  |  |                     std::vector<ValueType> init(numberOfStates, -1); | 
		
	
		
			
				|  |  |                     vd = std::vector<std::vector<ValueType>>(N + 1, init); |  |  |                     vd = std::vector<std::vector<ValueType>>(N + 1, init); | 
		
	
	
		
			
				|  | @ -669,13 +671,13 @@ namespace storm { | 
		
	
		
			
				|  |  |                         for (uint64_t k = N; k <= N; k--) { |  |  |                         for (uint64_t k = N; k <= N; k--) { | 
		
	
		
			
				|  |  |                             calculateUnifPlusVector(k, i, 0, lambda, probSize, relReachability, dir, unifVectors, |  |  |                             calculateUnifPlusVector(k, i, 0, lambda, probSize, relReachability, dir, unifVectors, | 
		
	
		
			
				|  |  |                                                     fullTransitionMatrix, markovianStates, psiStates, solver, logfile, |  |  |                                                     fullTransitionMatrix, markovianStates, psiStates, solver, logfile, | 
		
	
		
			
				|  |  |                                                     std::get<3>(foxGlynnResult)); |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                                                     poisson); | 
		
	
		
			
				|  |  |                             calculateUnifPlusVector(k, i, 2, lambda, probSize, relReachability, dir, unifVectors, |  |  |                             calculateUnifPlusVector(k, i, 2, lambda, probSize, relReachability, dir, unifVectors, | 
		
	
		
			
				|  |  |                                                     fullTransitionMatrix, markovianStates, psiStates, solver, logfile, |  |  |                                                     fullTransitionMatrix, markovianStates, psiStates, solver, logfile, | 
		
	
		
			
				|  |  |                                                     std::get<3>(foxGlynnResult)); |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                                                     poisson); | 
		
	
		
			
				|  |  |                             calculateVu(relReachability, dir, k, i, 1, lambda, probSize, unifVectors, |  |  |                             calculateVu(relReachability, dir, k, i, 1, lambda, probSize, unifVectors, | 
		
	
		
			
				|  |  |                                         fullTransitionMatrix, markovianStates, psiStates, solver, logfile, |  |  |                                         fullTransitionMatrix, markovianStates, psiStates, solver, logfile, | 
		
	
		
			
				|  |  |                                         std::get<3>(foxGlynnResult)); |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                                         poisson); | 
		
	
		
			
				|  |  |                             //also use iteration to keep maxNorm of vd and vup to date, so the loop-condition is easy to prove
 |  |  |                             //also use iteration to keep maxNorm of vd and vup to date, so the loop-condition is easy to prove
 | 
		
	
		
			
				|  |  |                             ValueType diff = std::abs(unifVectors[0][k][i] - unifVectors[1][k][i]); |  |  |                             ValueType diff = std::abs(unifVectors[0][k][i] - unifVectors[1][k][i]); | 
		
	
		
			
				|  |  |                             maxNorm = std::max(maxNorm, diff); |  |  |                             maxNorm = std::max(maxNorm, diff); | 
		
	
	
		
			
				|  | @ -700,7 +702,6 @@ namespace storm { | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |                 logfile.close(); |  |  |                 logfile.close(); | 
		
	
		
			
				|  |  |                 return unifVectors[0][0]; |  |  |                 return unifVectors[0][0]; | 
		
	
		
			
				|  |  | 
 |  |  |  | 
		
	
		
			
				|  |  |             } |  |  |             } | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  |             template <typename ValueType, typename std::enable_if<storm::NumberTraits<ValueType>::SupportsExponential, int>::type> |  |  |             template <typename ValueType, typename std::enable_if<storm::NumberTraits<ValueType>::SupportsExponential, int>::type> | 
		
	
	
		
			
				|  | 
 |