4c33444415 
								
							
								 
							
						 
						
							
							
								
								Snavely tested  
							
							
							
						 
						
							2014-10-18 13:16:44 +02:00  
				
					
						
							
							
								 
						
							
							
								bdf12b14b9 
								
							
								 
							
						 
						
							
							
								
								Add Snavely cost function  
							
							
							
						 
						
							2014-10-18 12:35:02 +02:00  
				
					
						
							
							
								 
						
							
							
								7018afdd58 
								
							
								 
							
						 
						
							
							
								
								Slight refactor of numerical derivatives  
							
							
							
						 
						
							2014-10-18 12:34:05 +02:00  
				
					
						
							
							
								 
						
							
							
								2972671064 
								
							
								 
							
						 
						
							
							
								
								Use boost::bind to avoid code duplication  
							
							
							
						 
						
							2014-10-18 12:29:14 +02:00  
				
					
						
							
							
								 
						
							
							
								db037c96c5 
								
							
								 
							
						 
						
							
							
								
								Implemented manifold_traits to allow numerical derivatives wrpt Matrix arguments  
							
							
							
						 
						
							2014-10-18 12:12:25 +02:00  
				
					
						
							
							
								 
						
							
							
								2cbba15573 
								
							
								 
							
						 
						
							
							
								
								ceres style functor  
							
							
							
						 
						
							2014-10-18 00:29:18 +02: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  
				
					
						
							
							
								 
						
							
							
								00d0a7b045 
								
							
								 
							
						 
						
							
							
								
								Merge branch 'feature/BAD_stackAb' into feature/BAD  
							
							
							
						 
						
							2014-10-15 01:20:01 +02: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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								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  
				
					
						
							
							
								 
						
							
							
								ef5bf03c81 
								
							
								 
							
						 
						
							
							
								
								Clean up  
							
							
							
						 
						
							2014-10-13 23:04:30 +02:00  
				
					
						
							
							
								 
						
							
							
								70f0caf0e3 
								
							
								 
							
						 
						
							
							
								
								Experimenting w Fusion  
							
							
							
						 
						
							2014-10-13 22:50:47 +02: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  
				
					
						
							
							
								 
						
							
							
								da0e5fe52f 
								
							
								 
							
						 
						
							
							
								
								The great collapse: instead of two recursively defined classes, there is now only one. The Record class is now a (recursive) inner class.  
							
							
							
						 
						
							2014-10-13 10:50:05 +02:00  
				
					
						
							
							
								 
						
							
							
								bc9e11f43c 
								
							
								 
							
						 
						
							
							
								
								Pre-big collapse: prototype recursively defined inner Record2 type  
							
							
							
						 
						
							2014-10-13 10:10:46 +02:00  
				
					
						
							
							
								 
						
							
							
								7fde47c48b 
								
							
								 
							
						 
						
							
							
								
								No more JacobianTA typedefs -> all use Jacobian<T,A> now.  
							
							
							
						 
						
							2014-10-13 09:25:06 +02:00  
				
					
						
							
							
								 
						
							
							
								7848d74928 
								
							
								 
							
						 
						
							
							
								
								Detailed explanation of recursive class composition pattern.  
							
							... 
							
							
							
							Jacobian type now defined in argument. 
							
						 
						
							2014-10-13 08:49:12 +02:00  
				
					
						
							
							
								 
						
							
							
								7f621af54a 
								
							
								 
							
						 
						
							
							
								
								Fixed bug  
							
							
							
						 
						
							2014-10-13 00:57:11 +02:00  
				
					
						
							
							
								 
						
							
							
								2e8d868cd2 
								
							
								 
							
						 
						
							
							
								
								keys have been implemented  
							
							
							
						 
						
							2014-10-13 00:37:46 +02:00  
				
					
						
							
							
								 
						
							
							
								a9d9fcd241 
								
							
								 
							
						 
						
							
							
								
								FunctionalNode inherited for all three functional ExpressionNode sub-classes  
							
							
							
						 
						
							2014-10-13 00:31:03 +02:00  
				
					
						
							
							
								 
						
							
							
								8100d89094 
								
							
								 
							
						 
						
							
							
								
								So much better as methods  
							
							
							
						 
						
							2014-10-12 23:57:08 +02:00  
				
					
						
							
							
								 
						
							
							
								55cc4ba56c 
								
							
								 
							
						 
						
							
							
								
								Switched names of fold result and meta-function that is folded over  
							
							
							
						 
						
							2014-10-12 23:31:58 +02:00  
				
					
						
							
							
								 
						
							
							
								ef21a4ba4a 
								
							
								 
							
						 
						
							
							
								
								Major re-org in preparation of recursive Functional nodes  
							
							
							
						 
						
							2014-10-12 23:03:33 +02:00  
				
					
						
							
							
								 
						
							
							
								408be628d2 
								
							
								 
							
						 
						
							
							
								
								Small change in meta-programming, big improvement in clarity  
							
							
							
						 
						
							2014-10-12 22:17:21 +02:00