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  
				
					
						
							
							
								 
						
							
							
								baaeaacabe 
								
							
								 
							
						 
						
							
							
								
								Made dimensions constant property. Now performance is ***blazing***, way past custom factors.  
							
							
							
						 
						
							2014-10-14 17:46:57 +02:00  
				
					
						
							
							
								 
						
							
							
								1c3f328fb2 
								
							
								 
							
						 
						
							
							
								
								Successful switch to Blocks !  
							
							
							
						 
						
							2014-10-14 15:43:41 +02:00  
				
					
						
							
							
								 
						
							
							
								d8d94d0c34 
								
							
								 
							
						 
						
							
							
								
								dimensions implemented and tested  
							
							
							
						 
						
							2014-10-14 09:53:47 +02:00  
				
					
						
							
							
								 
						
							
							
								ef5bf03c81 
								
							
								 
							
						 
						
							
							
								
								Clean up  
							
							
							
						 
						
							2014-10-13 23:04:30 +02:00  
				
					
						
							
							
								 
						
							
							
								dda91df6e1 
								
							
								 
							
						 
						
							
							
								
								On the way to full fusion: Optional meta-function now separate from Jacobian.  
							
							
							
						 
						
							2014-10-13 18:32:58 +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  
				
					
						
							
							
								 
						
							
							
								4d1eb05c7d 
								
							
								 
							
						 
						
							
							
								
								Passing JacobianMap as an argument now..  
							
							
							
						 
						
							2014-10-12 20:16:08 +02:00  
				
					
						
							
							
								 
						
							
							
								dc541f1051 
								
							
								 
							
						 
						
							
							
								
								made traceSize an instance variable  
							
							
							
						 
						
							2014-10-12 18:52:12 +02:00  
				
					
						
							
							
								 
						
							
							
								7a5f48f6dd 
								
							
								 
							
						 
						
							
							
								
								Fixed typo in assert  
							
							
							
						 
						
							2014-10-12 12:20:12 +02:00  
				
					
						
							
							
								 
						
							
							
								c776e87f78 
								
							
								 
							
						 
						
							
							
								
								Refactoring for readability/sanity  
							
							
							
						 
						
							2014-10-11 21:33:07 +02:00  
				
					
						
							
							
								 
						
							
							
								1bac83381f 
								
							
								 
							
						 
						
							
							
								
								Merge remote-tracking branch 'origin/feature/BAD_meta' into feature/BAD: Now the Record structures are recursively generated using template meta-programming, basically mpl::fold  
							
							... 
							
							
							
							Conflicts:
	gtsam_unstable/nonlinear/Expression-inl.h 
							
						 
						
							2014-10-11 15:20:12 +02:00  
				
					
						
							
							
								 
						
							
							
								88f9a423c5 
								
							
								 
							
						 
						
							
							
								
								Numbered types avoid ambiguity  
							
							
							
						 
						
							2014-10-11 14:19:39 +02:00  
				
					
						
							
							
								 
						
							
							
								ecf6462a25 
								
							
								 
							
						 
						
							
							
								
								Victory!! Unit tests work!  
							
							
							
						 
						
							2014-10-11 13:07:58 +02:00  
				
					
						
							
							
								 
						
							
							
								599e232d1d 
								
							
								 
							
						 
						
							
							
								
								traceSize, two tests work  
							
							
							
						 
						
							2014-10-11 12:11:22 +02:00  
				
					
						
							
							
								 
						
							
							
								deed7b8018 
								
							
								 
							
						 
						
							
							
								
								Unary prints, but still-faults downstream  
							
							
							
						 
						
							2014-10-11 11:30:06 +02:00  
				
					
						
							
							
								 
						
							
							
								69b69a0bc8 
								
							
								 
							
						 
						
							
							
								
								placement new works! And sophisticated Trace::print  
							
							
							
						 
						
							2014-10-11 11:03:35 +02:00  
				
					
						
							
							
								 
						
							
							
								eef2d49e8d 
								
							
								 
							
						 
						
							
							
								
								First prototype, segfaults  
							
							
							
						 
						
							2014-10-11 10:27:30 +02:00  
				
					
						
							
							
								 
						
							
							
								e09e24964a 
								
							
								 
							
						 
						
							
							
								
								No need to have all of T as template parameter  
							
							
							
						 
						
							2014-10-11 09:00:03 +02:00  
				
					
						
							
							
								 
						
							
							
								820988b04e 
								
							
								 
							
						 
						
							
							
								
								Do casting inside Trace  
							
							
							
						 
						
							2014-10-11 08:52:24 +02:00  
				
					
						
							
							
								 
						
							
							
								52fc6f2db4 
								
							
								 
							
						 
						
							
							
								
								Testing old trace  
							
							
							
						 
						
							2014-10-11 08:41:39 +02:00  
				
					
						
							
							
								 
						
							
							
								820e9553ee 
								
							
								 
							
						 
						
							
							
								
								TestBinaryExpression friend  
							
							
							
						 
						
							2014-10-11 08:17:46 +02:00  
				
					
						
							
							
								 
						
							
							
								23485a0e71 
								
							
								 
							
						 
						
							
							
								
								New and consistent naming: ExecutionTrace = whole tree, CallRecord = local information left by the function.  
							
							
							
						 
						
							2014-10-10 17:45:39 +02:00  
				
					
						
							
							
								 
						
							
							
								58bbce482d 
								
							
								 
							
						 
						
							
							
								
								Ternary works, same caveat  
							
							
							
						 
						
							2014-10-10 13:33:13 +02:00  
				
					
						
							
							
								 
						
							
							
								406467e341 
								
							
								 
							
						 
						
							
							
								
								Binary works, but it's ugly and does not work for repeated types  
							
							
							
						 
						
							2014-10-10 13:29:56 +02:00  
				
					
						
							
							
								 
						
							
							
								24714e48c5 
								
							
								 
							
						 
						
							
							
								
								Works for Unary !  
							
							
							
						 
						
							2014-10-10 12:38:26 +02:00  
				
					
						
							
							
								 
						
							
							
								f8468bd596 
								
							
								 
							
						 
						
							
							
								
								Recursion done  
							
							
							
						 
						
							2014-10-10 12:31:40 +02:00  
				
					
						
							
							
								 
						
							
							
								732ff54b83 
								
							
								 
							
						 
						
							
							
								
								More experiments  
							
							
							
						 
						
							2014-10-10 11:41:01 +02:00  
				
					
						
							
							
								 
						
							
							
								8e264f4289 
								
							
								 
							
						 
						
							
							
								
								Attempt at defining Trace recursively  
							
							
							
						 
						
							2014-10-09 14:38:16 +02:00  
				
					
						
							
							
								 
						
							
							
								5e5457b390 
								
							
								 
							
						 
						
							
							
								
								Renamed entry point to startReverseAD to emphasize it is only called once  
							
							
							
						 
						
							2014-10-09 13:42:43 +02:00  
				
					
						
							
							
								 
						
							
							
								7e069191e5 
								
							
								 
							
						 
						
							
							
								
								Slight refactor  
							
							
							
						 
						
							2014-10-09 10:58:46 +02:00  
				
					
						
							
							
								 
						
							
							
								a38a0ae9e1 
								
							
								 
							
						 
						
							
							
								
								Some comments  
							
							
							
						 
						
							2014-10-09 00:21:10 +02:00  
				
					
						
							
							
								 
						
							
							
								9ebe1e6d10 
								
							
								 
							
						 
						
							
							
								
								Super-speedup by specializing to 2-dimensional output (for now). Using some template magic.  
							
							
							
						 
						
							2014-10-08 23:50:17 +02:00  
				
					
						
							
							
								 
						
							
							
								abb92632b8 
								
							
								 
							
						 
						
							
							
								
								Empty derived destructors are not needed  
							
							
							
						 
						
							2014-10-08 17:32:46 +02:00  
				
					
						
							
							
								 
						
							
							
								6a1bc6e242 
								
							
								 
							
						 
						
							
							
								
								Documentation  
							
							
							
						 
						
							2014-10-08 17:28:33 +02:00  
				
					
						
							
							
								 
						
							
							
								ce2dcaeb3b 
								
							
								 
							
						 
						
							
							
								
								Tagged union, lightweight  
							
							
							
						 
						
							2014-10-08 15:39:59 +02:00  
				
					
						
							
							
								 
						
							
							
								390842e1f7 
								
							
								 
							
						 
						
							
							
								
								Put Trace in front  
							
							
							
						 
						
							2014-10-08 13:58:15 +02:00