e96ceb2b4f 
								
							
								 
							
						 
						
							
							
								
								extended example for robust kernels  
							
							
							
						 
						
							2014-10-17 14:58:45 -04:00  
				
					
						
							
							
								 
						
							
							
								c10993a690 
								
							
								 
							
						 
						
							
							
								
								displaying nr of iterations for verbosity = TERMINATION  
							
							
							
						 
						
							2014-10-17 14:58:45 -04:00  
				
					
						
							
							
								 
						
							
							
								f258bfe044 
								
							
								 
							
						 
						
							
							
								
								add DerivedValue test for Cal3Unified  
							
							
							
						 
						
							2014-10-17 14:44:37 -04:00  
				
					
						
							
							
								 
						
							
							
								cdc121cf7d 
								
							
								 
							
						 
						
							
							
								
								add in testSerialization  
							
							
							
						 
						
							2014-10-17 14:25:42 -04:00  
				
					
						
							
							
								 
						
							
							
								55bda50235 
								
							
								 
							
						 
						
							
							
								
								move calculation of Cal3DS2 to base class, all unit tests passed and hopefully fix issue of DerivedValue  
							
							
							
						 
						
							2014-10-17 13:35:30 -04:00  
				
					
						
							
							
								 
						
							
							
								b4c62969d1 
								
							
								 
							
						 
						
							
							
								
								move calculation of Cal3DS2 to base class, all unit tests passed and hopefully fix issue of DerivedValue  
							
							
							
						 
						
							2014-10-17 13:30:43 -04:00  
				
					
						
							
							
								 
						
							
							
								02d25f6658 
								
							
								 
							
						 
						
							
							
								
								New tests on traceSize  
							
							
							
						 
						
							2014-10-16 15:07:05 +02:00  
				
					
						
							
							
								 
						
							
							
								0bcca2c386 
								
							
								 
							
						 
						
							
							
								
								Drastic reduction in allocations at ExpressionFactor construction by having dims constructed imperatively, and using it for both keys_ and dimensions_  
							
							
							
						 
						
							2014-10-16 14:16:58 +02:00  
				
					
						
							
							
								 
						
							
							
								944422e295 
								
							
								 
							
						 
						
							
							
								
								Only ExpressionFactor needs dimensions! Also, add dimensions at construction -> speeds up linearize.  
							
							
							
						 
						
							2014-10-16 11:15:47 +02:00  
				
					
						
							
							
								 
						
							
							
								3413b98331 
								
							
								 
							
						 
						
							
							
								
								New storage sizes  
							
							
							
						 
						
							2014-10-15 14:30:36 +02:00  
				
					
						
							
							
								 
						
							
							
								5bcc3d922c 
								
							
								 
							
						 
						
							
							
								
								Just always store transpose? Problem with optional was that the *empty* optional was copied from the Values, so we gained nothing.  
							
							... 
							
							
							
							However, this is expensive space-wise (double), and optimizes for a particular usage of Rot3, so does not seem good practice (see stack overflow discussion, as well). But the alternative is cumbersome. 
							
						 
						
							2014-10-15 14:28:47 +02:00  
				
					
						
							
							
								 
						
							
							
								c4bf680e96 
								
							
								 
							
						 
						
							
							
								
								Cached Rot3::transpose(). Inspired by @cbeall3 fix of Unit3, I realized that with one million points and 1000 cameras, the same Matrix3 (R_.transpose()) was computed a 1000 more times than needed. Especially with quaternions this would be expensive, even with Rot3Q.  
							
							
							
						 
						
							2014-10-15 11:51:41 +02:00  
				
					
						
							
							
								 
						
							
							
								4a854f7e22 
								
							
								 
							
						 
						
							
							
								
								No using namespace in headers  
							
							
							
						 
						
							2014-10-15 11:01:27 +02:00  
				
					
						
							
							
								 
						
							
							
								898c06ccbb 
								
							
								 
							
						 
						
							
							
								
								New multi-threaded, realistic SFM example (1M factors, not 1M calls on same factor)  
							
							
							
						 
						
							2014-10-15 11:01:02 +02:00  
				
					
						
							
							
								 
						
							
							
								79ff0c54f9 
								
							
								 
							
						 
						
							
							
								
								createUnknowns  
							
							
							
						 
						
							2014-10-15 10:38:54 +02:00  
				
					
						
							
							
								 
						
							
							
								103ec596d7 
								
							
								 
							
						 
						
							
							
								
								Remove empty file and some code cleanup  
							
							
							
						 
						
							2014-10-15 00:03:57 -04:00  
				
					
						
							
							
								 
						
							
							
								99caf8833a 
								
							
								 
							
						 
						
							
							
								
								Finished ordering implementation  
							
							
							
						 
						
							2014-10-14 23:46:12 -04:00  
				
					
						
							
							
								 
						
							
							
								00d0a7b045 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'feature/BAD_stackAb' into feature/BAD  
							
							
							
						 
						
							2014-10-15 01:20:01 +02:00  
				
					
						
							
							
								 
						
							
							
								649478f186 
								
							
								 
							
						 
						
							
							
								
								Should work but seg-faults  
							
							
							
						 
						
							2014-10-15 01:19:14 +02:00  
				
					
						
							
							
								 
						
							
							
								ad74a4b8c9 
								
							
								 
							
						 
						
							
							
								
								Update ms_stdint.h in metis. Export libraries correctly  
							
							
							
						 
						
							2014-10-14 19:14:59 -04:00  
				
					
						
							
							
								 
						
							
							
								9b1c9bbf37 
								
							
								 
							
						 
						
							
							
								
								Allocate temporary matrix on the stack rather tahn on heap, and give VerticalBlockMatrix a view on it.  
							
							
							
						 
						
							2014-10-15 00:56:06 +02:00  
				
					
						
							
							
								 
						
							
							
								c88b2a5902 
								
							
								 
							
						 
						
							
							
								
								Fixed bizarre link erro as well as off-by-1 bug  
							
							
							
						 
						
							2014-10-15 00:34:28 +02:00  
				
					
						
							
							
								 
						
							
							
								0f055f7910 
								
							
								 
							
						 
						
							
							
								
								Pass matrix to VerticalBlockMatrix constructor  
							
							
							
						 
						
							2014-10-15 00:28:53 +02:00  
				
					
						
							
							
								 
						
							
							
								2092705d12 
								
							
								 
							
						 
						
							
							
								
								Allow for other Eigen matrix types  
							
							
							
						 
						
							2014-10-15 00:27:43 +02:00  
				
					
						
							
							
								 
						
							
							
								cf4374563b 
								
							
								 
							
						 
						
							
							
								
								Fixed Dynamics Factor and added debug cout statements to help fix indeterminent linear system exception  
							
							
							
						 
						
							2014-10-14 18:08:26 -04:00  
				
					
						
							
							
								 
						
							
							
								625b939b66 
								
							
								 
							
						 
						
							
							
								
								Another very significant speed-up of reverseAD pipeline, by template specialization of the leaf case for fixed matrices. Unfortunately, while this sped up reverse AD for our SFM kernel by 300%, reverseAD was only 6%, and is now 2% of total time. So, time to look elsewhere.  
							
							... 
							
							
							
							Oh, and, it is clear that the Identity matrix for Leaf only expressions is completely known at compile time: Eigen::Matrix<double, T::dimension, T::dimension>::Identity(). That should nicely speed up many a PriorFactor (replacement). 
							
						 
						
							2014-10-14 23:40:21 +02:00  
				
					
						
							
							
								 
						
							
							
								799beec7e2 
								
							
								 
							
						 
						
							
							
								
								fix signed/unsigned warnings  
							
							
							
						 
						
							2014-10-14 17:00:03 -04:00  
				
					
						
							
							
								 
						
							
							
								fcc49bd22a 
								
							
								 
							
						 
						
							
							
								
								Fix for nasty intermittent TBB crashes in testEssentialMatrixFactor and testGeneralSFMFactor. Fixes issue 93  
							
							
							
						 
						
							2014-10-14 16:30:13 -04:00  
				
					
						
							
							
								 
						
							
							
								0771b1658b 
								
							
								 
							
						 
						
							
							
								
								Ordering implementation, unit tests  
							
							
							
						 
						
							2014-10-14 15:18:05 -04:00  
				
					
						
							
							
								 
						
							
							
								4894dccf5b 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'feature/BAD_linearize' into feature/BAD: Now awesome performance!  
							
							... 
							
							
							
							In this I branch essentially implemented two things
1) I used template-meta-programming to automate adding more functional nodes
2) I overloaded "linearize" so that now reverse AD writes to Eigen::Block<Matrix> views of the VerticalBlockMatrix that will be passed to the JacobianFacor. This did wonders for performance, making the AD pipeline faster than dedicated factors. Because the latter is based on optional<Matrix> references, they cannot apply the same trick :-(
3) Finally, I removed the forward AD pipeline. Not worth keeping (this implementation) alive. 
							
						 
						
							2014-10-14 18:05:59 +02:00  
				
					
						
							
							
								 
						
							
							
								baaeaacabe 
								
							
								 
							
						 
						
							
							
								
								Made dimensions constant property. Now performance is ***blazing***, way past custom factors.  
							
							
							
						 
						
							2014-10-14 17:46:57 +02:00  
				
					
						
							
							
								 
						
							
							
								c971207abf 
								
							
								 
							
						 
						
							
							
								
								Switched to vector for dimensions  
							
							
							
						 
						
							2014-10-14 17:16:31 +02:00  
				
					
						
							
							
								 
						
							
							
								1c3f328fb2 
								
							
								 
							
						 
						
							
							
								
								Successful switch to Blocks !  
							
							
							
						 
						
							2014-10-14 15:43:41 +02:00  
				
					
						
							
							
								 
						
							
							
								f3e1561105 
								
							
								 
							
						 
						
							
							
								
								Prepare VerticalBlockMatrix for filling  
							
							
							
						 
						
							2014-10-14 11:13:49 +02:00  
				
					
						
							
							
								 
						
							
							
								027759300d 
								
							
								 
							
						 
						
							
							
								
								size_t argument for check  
							
							
							
						 
						
							2014-10-14 11:13:09 +02:00  
				
					
						
							
							
								 
						
							
							
								4c76f39009 
								
							
								 
							
						 
						
							
							
								
								Now uses dimensions  
							
							
							
						 
						
							2014-10-14 09:55:34 +02:00  
				
					
						
							
							
								 
						
							
							
								d8d94d0c34 
								
							
								 
							
						 
						
							
							
								
								dimensions implemented and tested  
							
							
							
						 
						
							2014-10-14 09:53:47 +02:00  
				
					
						
							
							
								 
						
							
							
								781cc6daa9 
								
							
								 
							
						 
						
							
							
								
								keys now from expression_  
							
							
							
						 
						
							2014-10-14 08:59:01 +02:00  
				
					
						
							
							
								 
						
							
							
								0a41b0a027 
								
							
								 
							
						 
						
							
							
								
								Moved meta-programming tests to testExpressionMeta.cpp  
							
							
							
						 
						
							2014-10-14 08:53:16 +02:00  
				
					
						
							
							
								 
						
							
							
								2560ddef99 
								
							
								 
							
						 
						
							
							
								
								Fix building with MKL on Mac OS  
							
							
							
						 
						
							2014-10-14 00:04:28 -04:00  
				
					
						
							
							
								 
						
							
							
								ef5bf03c81 
								
							
								 
							
						 
						
							
							
								
								Clean up  
							
							
							
						 
						
							2014-10-13 23:04:30 +02:00  
				
					
						
							
							
								 
						
							
							
								70f0caf0e3 
								
							
								 
							
						 
						
							
							
								
								Experimenting w Fusion  
							
							
							
						 
						
							2014-10-13 22:50:47 +02:00  
				
					
						
							
							
								 
						
							
							
								5c68e9e755 
								
							
								 
							
						 
						
							
							
								
								silence unused variable warning on Mac  
							
							
							
						 
						
							2014-10-13 15:48:17 -04:00  
				
					
						
							
							
								 
						
							
							
								bf22a49504 
								
							
								 
							
						 
						
							
							
								
								Working ordering format for Metis_NodeND  
							
							
							
						 
						
							2014-10-13 13:15:05 -04:00  
				
					
						
							
							
								 
						
							
							
								dda91df6e1 
								
							
								 
							
						 
						
							
							
								
								On the way to full fusion: Optional meta-function now separate from Jacobian.  
							
							
							
						 
						
							2014-10-13 18:32:58 +02:00  
				
					
						
							
							
								 
						
							
							
								ba0b68110f 
								
							
								 
							
						 
						
							
							
								
								Boost Fusion needed to access values :-(  
							
							
							
						 
						
							2014-10-13 13:56:51 +02:00  
				
					
						
							
							
								 
						
							
							
								a52ff52941 
								
							
								 
							
						 
						
							
							
								
								Try some meta-transforms  
							
							
							
						 
						
							2014-10-13 13:34:00 +02:00  
				
					
						
							
							
								 
						
							
							
								1c1695353e 
								
							
								 
							
						 
						
							
							
								
								Now we can apply ExecutionTrace and Expression as meta-functions  
							
							
							
						 
						
							2014-10-13 13:04:37 +02:00  
				
					
						
							
							
								 
						
							
							
								c11d7885e1 
								
							
								 
							
						 
						
							
							
								
								Comments  
							
							
							
						 
						
							2014-10-13 11:55:16 +02:00  
				
					
						
							
							
								 
						
							
							
								74269902d7 
								
							
								 
							
						 
						
							
							
								
								Big collapse now realized all the way through  
							
							
							
						 
						
							2014-10-13 11:37:47 +02:00