| 
						
						
						
					 | 
				
				 | 
				
					@ -1,20 +1,18 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					From 9f1a66bef29005a4cbe178241cad563fcb0dfa5f Mon Sep 17 00:00:00 2001 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					From 4d2074e54b27877bcd694add91447b569d88e918 Mon Sep 17 00:00:00 2001 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					From: Tim Quatmann <tim.quatmann@cs.rwth-aachen.de> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Date: Mon, 18 May 2020 11:58:47 +0200 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Subject: [PATCH 1/2] Adaptions for SparseLU to work with Scalar types that do | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 not default construct from a double (like CLN numbers) or that do not have an | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 operator< or std::abs | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Date: Wed, 20 May 2020 15:48:43 +0200 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Subject: [PATCH] Eigen Patch | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					---
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 Eigen/src/SparseLU/SparseLU.h              | 10 +-- | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 Eigen/src/SparseLU/SparseLU_column_bmod.h  |  2 +- | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 Eigen/src/SparseLU/SparseLU_copy_to_ucol.h |  2 +- | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 Eigen/src/SparseLU/SparseLU_panel_bmod.h   |  6 +- | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 Eigen/src/SparseLU/SparseLU_pivotL.h       | 74 +++++++++++++++------- | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 5 files changed, 62 insertions(+), 32 deletions(-) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 Eigen/src/SparseLU/SparseLU_pivotL.h       | 79 +++++++++++++++------- | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 5 files changed, 63 insertions(+), 36 deletions(-) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					diff --git a/Eigen/src/SparseLU/SparseLU.h b/Eigen/src/SparseLU/SparseLU.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index 7104831c0..9aeceb021 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index 7104831..9aeceb0 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					--- a/Eigen/src/SparseLU/SparseLU.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+++ b/Eigen/src/SparseLU/SparseLU.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -97,12 +97,12 @@ class SparseLU : public SparseSolverBase<SparseLU<_MatrixType,_OrderingType> >,
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -60,7 +58,7 @@ index 7104831c0..9aeceb021 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       // which are available in the  L part :) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       for (Index j = 0; j < this->cols(); ++j) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					diff --git a/Eigen/src/SparseLU/SparseLU_column_bmod.h b/Eigen/src/SparseLU/SparseLU_column_bmod.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index b57f06802..be15e5ee6 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index b57f068..be15e5e 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					--- a/Eigen/src/SparseLU/SparseLU_column_bmod.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+++ b/Eigen/src/SparseLU/SparseLU_column_bmod.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -129,7 +129,7 @@ Index SparseLUImpl<Scalar,StorageIndex>::column_bmod(const Index jcol, const Ind
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -73,7 +71,7 @@ index b57f06802..be15e5ee6 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					diff --git a/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h b/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index c32d8d8b1..03c8aaf85 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index c32d8d8..03c8aaf 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					--- a/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+++ b/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -87,7 +87,7 @@ Index SparseLUImpl<Scalar,StorageIndex>::copy_to_ucol(const Index jcol, const In
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -86,7 +84,7 @@ index c32d8d8b1..03c8aaf85 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					           isub++; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					diff --git a/Eigen/src/SparseLU/SparseLU_panel_bmod.h b/Eigen/src/SparseLU/SparseLU_panel_bmod.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index 822cf32c3..5dc819cf7 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index 822cf32..5dc819c 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					--- a/Eigen/src/SparseLU/SparseLU_panel_bmod.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+++ b/Eigen/src/SparseLU/SparseLU_panel_bmod.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -122,7 +122,7 @@ void SparseLUImpl<Scalar,StorageIndex>::panel_bmod(const Index m, const Index w,
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -117,7 +115,7 @@ index 822cf32c3..5dc819cf7 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         u_col++; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					diff --git a/Eigen/src/SparseLU/SparseLU_pivotL.h b/Eigen/src/SparseLU/SparseLU_pivotL.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index a86dac93f..2ad56531c 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index a86dac9..f1ebd3c 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					--- a/Eigen/src/SparseLU/SparseLU_pivotL.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+++ b/Eigen/src/SparseLU/SparseLU_pivotL.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -32,7 +32,46 @@
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -125,11 +123,11 @@ index a86dac93f..2ad56531c 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 namespace Eigen { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 namespace internal { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-  
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    template<typename Scalar, typename StorageIndex, typename std::enable_if<std::is_same<Scalar, double>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    template<typename Scalar, typename StorageIndex, typename std::enable_if<!std::is_same<Scalar, storm::RationalFunction>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    void findLargestAbsolutePivotElement(const Index& nsupc, const Index& nsupr, Scalar const* lu_col_ptr, StorageIndex const* lsub_ptr, Index const& diagind, Index& diag, Index& pivptr, Scalar& pivmax) {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+        double rtemp = 0;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+        Scalar rtemp = 0;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+        for (Index isub = nsupc; isub < nsupr; ++isub) {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+            rtemp = std::abs(lu_col_ptr[isub]);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+            rtemp = storm::utility::abs(lu_col_ptr[isub]);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+            if (rtemp > pivmax) {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+                pivmax = rtemp;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+                pivptr = isub;
 | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -138,7 +136,7 @@ index a86dac93f..2ad56531c 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+        }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    template<typename Scalar, typename StorageIndex, typename std::enable_if<!std::is_same<Scalar, double>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    template<typename Scalar, typename StorageIndex, typename std::enable_if<std::is_same<Scalar, storm::RationalFunction>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    void findLargestAbsolutePivotElement(const Index& nsupc, const Index& nsupr, Scalar const* lu_col_ptr, StorageIndex const* lsub_ptr, Index const& diagind, Index& diag, Index& pivptr, Scalar& pivmax) {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+        bool foundPivotElement = false;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+        for (Index isub = nsupc; isub < nsupr; ++isub) {
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -168,7 +166,7 @@ index a86dac93f..2ad56531c 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  * \brief Performs the numerical pivotin on the current column of L, and the CDIV operation. | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  *  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -70,26 +109,19 @@ Index SparseLUImpl<Scalar,StorageIndex>::pivotL(const Index jcol, const RealScal
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -70,42 +109,30 @@ Index SparseLUImpl<Scalar,StorageIndex>::pivotL(const Index jcol, const RealScal
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   StorageIndex* lsub_ptr = &(glu.lsub.data()[lptr]); // Start of row indices of the supernode | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   // Determine the largest abs numerical value for partial pivoting  | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -205,7 +203,14 @@ index a86dac93f..2ad56531c 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     perm_r(pivrow) = StorageIndex(jcol); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     return (jcol+1); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -103,9 +135,7 @@ Index SparseLUImpl<Scalar,StorageIndex>::pivotL(const Index jcol, const RealScal
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-  RealScalar thresh = diagpivotthresh * pivmax; 
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-  
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-  // Choose appropriate pivotal element 
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-  
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+  // Choose appropriate pivotal element
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     // Test if the diagonal element can be used as a pivot (given the threshold value) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     if (diag >= 0 )  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					       // Diagonal element exists | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -216,7 +221,7 @@ index a86dac93f..2ad56531c 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     pivrow = lsub_ptr[pivptr]; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -125,7 +155,7 @@ Index SparseLUImpl<Scalar,StorageIndex>::pivotL(const Index jcol, const RealScal
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -125,7 +152,7 @@ Index SparseLUImpl<Scalar,StorageIndex>::pivotL(const Index jcol, const RealScal
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   // cdiv operations | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -226,46 +231,5 @@ index a86dac93f..2ad56531c 100644 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     lu_col_ptr[k] *= temp;  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   return 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-- 
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					2.24.2 (Apple Git-127) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					From 366d73d04bedd7c58fc6b7e96f32a72422ceea89 Mon Sep 17 00:00:00 2001 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					From: Tim Quatmann <tim.quatmann@cs.rwth-aachen.de> | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Date: Tue, 19 May 2020 08:52:28 +0200 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					Subject: [PATCH 2/2] Fixed actually using largest pivot with rational numbers | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					---
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 Eigen/src/SparseLU/SparseLU_pivotL.h | 8 ++++---- | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 1 file changed, 4 insertions(+), 4 deletions(-) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					diff --git a/Eigen/src/SparseLU/SparseLU_pivotL.h b/Eigen/src/SparseLU/SparseLU_pivotL.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					index 2ad56531c..cc2dd9292 100644
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					--- a/Eigen/src/SparseLU/SparseLU_pivotL.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+++ b/Eigen/src/SparseLU/SparseLU_pivotL.h
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -32,11 +32,11 @@
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 namespace Eigen { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					 namespace internal { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-    template<typename Scalar, typename StorageIndex, typename std::enable_if<std::is_same<Scalar, double>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    template<typename Scalar, typename StorageIndex, typename std::enable_if<!std::is_same<Scalar, storm::RationalFunction>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     void findLargestAbsolutePivotElement(const Index& nsupc, const Index& nsupr, Scalar const* lu_col_ptr, StorageIndex const* lsub_ptr, Index const& diagind, Index& diag, Index& pivptr, Scalar& pivmax) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-        double rtemp = 0;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+        Scalar rtemp = 0;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         for (Index isub = nsupc; isub < nsupr; ++isub) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-            rtemp = std::abs(lu_col_ptr[isub]);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+            rtemp = storm::utility::abs(lu_col_ptr[isub]);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					             if (rtemp > pivmax) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                 pivmax = rtemp; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					                 pivptr = isub; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					@@ -45,7 +45,7 @@ namespace internal {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-    template<typename Scalar, typename StorageIndex, typename std::enable_if<!std::is_same<Scalar, double>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					+    template<typename Scalar, typename StorageIndex, typename std::enable_if<std::is_same<Scalar, storm::RationalFunction>::value, int>::type = 0>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     void findLargestAbsolutePivotElement(const Index& nsupc, const Index& nsupr, Scalar const* lu_col_ptr, StorageIndex const* lsub_ptr, Index const& diagind, Index& diag, Index& pivptr, Scalar& pivmax) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         bool foundPivotElement = false; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					         for (Index isub = nsupc; isub < nsupr; ++isub) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					-- 
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					2.24.2 (Apple Git-127) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					2.21.0 (Apple Git-122) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 |