Commit Graph

255 Commits (00d0a7b045df6da4bad7a27f49c45a887c3807d4)

Author SHA1 Message Date
dellaert 69b69a0bc8 placement new works! And sophisticated Trace::print 2014-10-11 11:03:35 +02:00
dellaert eef2d49e8d First prototype, segfaults 2014-10-11 10:27:30 +02:00
dellaert e09e24964a No need to have all of T as template parameter 2014-10-11 09:00:03 +02:00
dellaert 820988b04e Do casting inside Trace 2014-10-11 08:52:24 +02:00
dellaert 52fc6f2db4 Testing old trace 2014-10-11 08:41:39 +02:00
dellaert 820e9553ee TestBinaryExpression friend 2014-10-11 08:17:46 +02:00
dellaert a2d2d82e0e some namespace management 2014-10-11 07:39:13 +02:00
dellaert 23485a0e71 New and consistent naming: ExecutionTrace = whole tree, CallRecord = local information left by the function. 2014-10-10 17:45:39 +02:00
dellaert ae93dd9869 Commented out repeated arguments 2014-10-10 13:57:37 +02:00
dellaert 58bbce482d Ternary works, same caveat 2014-10-10 13:33:13 +02:00
dellaert 406467e341 Binary works, but it's ugly and does not work for repeated types 2014-10-10 13:29:56 +02:00
dellaert 24714e48c5 Works for Unary ! 2014-10-10 12:38:26 +02:00
dellaert f8468bd596 Recursion done 2014-10-10 12:31:40 +02:00
dellaert 40fc6f5c03 Working prototype 2014-10-10 12:29:01 +02:00
dellaert dd1b931802 Successfully defined Jacobian 2014-10-10 12:03:13 +02:00
dellaert 732ff54b83 More experiments 2014-10-10 11:41:01 +02:00
dellaert 8e264f4289 Attempt at defining Trace recursively 2014-10-09 14:38:16 +02:00
dellaert 5e5457b390 Renamed entry point to startReverseAD to emphasize it is only called once 2014-10-09 13:42:43 +02:00
dellaert 563c4d214c Renamed BADFactor -> ExpressionFactor 2014-10-09 13:00:56 +02:00
dellaert 7e069191e5 Slight refactor 2014-10-09 10:58:46 +02:00
dellaert a38a0ae9e1 Some comments 2014-10-09 00:21:10 +02:00
dellaert 9ebe1e6d10 Super-speedup by specializing to 2-dimensional output (for now). Using some template magic. 2014-10-08 23:50:17 +02:00
dellaert abb92632b8 Empty derived destructors are not needed 2014-10-08 17:32:46 +02:00
dellaert 6a1bc6e242 Documentation 2014-10-08 17:28:33 +02:00
dellaert ce2dcaeb3b Tagged union, lightweight 2014-10-08 15:39:59 +02:00
dellaert 390842e1f7 Put Trace in front 2014-10-08 13:58:15 +02:00
dellaert ba9faa68b6 New Leaf/noise tests 2014-10-08 13:56:54 +02:00
dellaert c4a92acde1 Avoid argument temporaries 2014-10-07 19:35:44 +02:00
dellaert 3c1c9c6d12 Switch to pointers - nice improvement 2014-10-07 18:11:12 +02:00
dellaert e4392c0a3b JacobianTrace no longer templated 2014-10-07 16:11:55 +02:00
dellaert 83d77271d9 Ternary now fixed 2014-10-07 13:04:04 +02:00
dellaert 613cb0bb12 Binary functions now take fixed Jacobians 2014-10-07 01:01:46 +02:00
dellaert e48b38ca21 Fixing uncalibrate (does not yet compile) 2014-10-06 15:45:26 +02:00
dellaert e5c3f4228a Some fixed size in UnaryExpression 2014-10-06 14:22:18 +02:00
dellaert 5c96b7f38d Made naming more suggestive of AD process rather than generic H1,H2... 2014-10-06 13:19:01 +02:00
dellaert 0ed96dda33 Avoid alloc and copy 2014-10-06 12:14:15 +02:00
dellaert c748fdb404 Re-did with move semantics. Dangerously imperative. 2014-10-06 12:13:52 +02:00
Sungtae An 69f74014aa add traceExecution in TernaryExpression 2014-10-05 17:40:11 -04:00
Sungtae An cc3c0fcfec add trace structure for reverse AD in TernaryExpression 2014-10-05 17:38:09 -04:00
Sungtae An 0421d05d44 add forward() in TernaryExpression 2014-10-05 17:36:53 -04:00
Sungtae An 0a7db2d252 Merge remote-tracking branch 'origin/feature/BAD' into feature/BAD 2014-10-05 16:16:19 -04:00
Sungtae An 40565564f5 TernaryExpression is added 2014-10-05 16:09:24 -04:00
dellaert 632810ff9a Now only inline add, for performance 2014-10-05 21:53:40 +02:00
dellaert 33c1d072a4 Add switch between inline add and JacobianMap as a new class. 2014-10-05 21:49:30 +02:00
dellaert 5b13306104 Split out starting the AD process vs. propagating it, is more efficient than starting with a useless identity matrix 2014-10-05 19:27:52 +02:00
dellaert ff9dd8eb8d Removed some obsolete code 2014-10-05 19:09:16 +02:00
dellaert caf742d5e1 Better names 2014-10-05 17:20:55 +02:00
dellaert 001504a432 JacobianTrace base, and avoid copying JacobianMaps. 2014-10-05 17:12:38 +02:00
dellaert 2718662467 Removed debug printing 2014-10-05 15:01:36 +02:00
dellaert fdf9c10b42 Implemented value and now testBADFactor also runs 2014-10-05 15:00:10 +02:00
dellaert 8db2cd17fc Finished constant Trace and *everything* just works!!! Amazing :-) 2014-10-05 13:41:20 +02:00
dellaert 7c19542245 Leaf Trace compiles 2014-10-05 13:37:51 +02:00
dellaert 75445307b2 Unary Trace done 2014-10-05 13:33:23 +02:00
dellaert 8e527a2251 Binary Trace compiles, runs 2014-10-05 13:27:41 +02:00
dellaert 303d37a716 Separate hierarchy 2014-10-05 11:22:14 +02:00
dellaert 6fb10a5de9 Rename, emphasizing is forward AD 2014-10-03 21:13:34 +02:00
dellaert a5b92f0342 MUCH simpler by just using boost::bind to turn methods into functions 2014-10-03 13:18:25 +02:00
dellaert bdf5451565 Typedefs 2014-10-03 12:52:35 +02:00
dellaert c8dd361080 Common base class BinaryExpression 2014-10-03 12:48:28 +02:00
dellaert 987b123ec9 NullaryMethodExpression and UnaryFunctionExpression, derived from UnaryExpression 2014-10-03 12:40:26 +02:00
dellaert aefad1e548 MAJOR refactor: I now use separate functions for value (only) and "augmented", for combined value-derivatives. The latter returns a new templated class, Augmented<T>. 2014-10-03 10:25:02 +02:00
dellaert da4cfe6fdc ternary test 2014-10-02 23:39:17 +02:00
dellaert 59af1c4b6d Major refactor that does not ask for derivatives when argument is constant. Also split combine into double add, added print, and moved those two statics to ExpressionNode. 2014-10-02 23:28:19 +02:00
dellaert 166396d6f6 Added tests with constant Expression 2014-10-02 23:26:59 +02:00
dellaert e7e7b3806f New test with constant argument 2014-10-02 20:28:37 +02:00
dellaert df17758469 Assume H pre-allocated as usual, and *move* Jacobians to avoid allocations 2014-10-02 13:30:16 +02:00
dellaert ebb091d390 BadFactor is now a functioning NoiseModelFactor 2014-10-02 11:01:39 +02:00
dellaert ce53346a9e Added Symbol versions 2014-10-01 13:12:07 +02:00
dellaert 0d94eeb480 Created expressions.h header 2014-10-01 11:25:49 +02:00
dellaert 254f8c5f75 Possible naming convention 2014-10-01 11:01:38 +02:00
dellaert a6c1ba19cc Concise version 2014-10-01 10:53:35 +02:00
dellaert d45250a989 Fixed dim 2014-10-01 10:45:57 +02:00
dellaert d935172ac5 Tightened 2014-10-01 10:43:03 +02:00
dellaert 8f6eae922a Tightened/cleaned up 2014-10-01 10:36:24 +02:00
Paul Furgale 837b2a6bc0 Fixed the member function with very ugly syntax 2014-09-30 23:13:07 +02:00
dellaert c68c2d2dac Prototype code for passing methods. Does not work (uncomment line 61) 2014-09-30 13:19:44 +02:00
dellaert ae17f8a82f Some refactoring, new static method "combine" 2014-09-30 13:00:37 +02:00
dellaert 374140abb8 Moved all BAD stuff to nonlinear 2014-09-30 12:34:03 +02:00
dellaert 1aa7b570f9 Added BADFactor header and created new test 2014-09-30 12:30:15 +02:00
cbeall3 0450c58d66 silence warning 2014-05-06 12:06:07 -04:00
Richard Roberts ed8b1eeaa1 Converted another loop to use insert like was fixed in the previous commit (wasn't a problem this time but am matching the style to the other file) 2014-02-24 09:29:30 -05:00
cbeall3 3e0904e250 remove unneeded/wasteful loop 2014-02-23 23:12:25 -05:00
Richard Roberts 1770f44ad9 Fixed a number of clang warnings 2014-02-23 18:53:48 -05:00
Richard Roberts 661a157553 Working on standardizing/simplifying building unit tests and examples. Much simpler cmake function to add a glob of tests, doing away with convenience libraries, and removing other options that we never change from their defaults. 2014-02-13 01:34:31 -05:00
Richard Roberts 4b8c17ec77 Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
Frank Dellaert d7dc390130 Particle factor scaffold 2013-12-19 17:14:40 +00:00
Richard Roberts 880d9a8e3c Switched to new Eigen built-in special comma initializer 2013-12-16 21:33:12 +00:00
Richard Roberts 5f87cbea7f New SymmetricBlockMatrix interface - should be safer as all exposed functions use symmetric matrix expressions and the internal uninitialized values below the diagonal are never exposed. 2013-11-26 23:49:53 +00:00
Richard Roberts a27f97dec4 Fix in ConcurrentFilteringAndSmoothing - one elimination call was using the default elimination function instead of the one from the parameters. 2013-11-21 15:42:17 +00:00
Richard Roberts ec78d54f37 Removed old Index typedef and IndexFormatter 2013-11-08 16:35:28 +00:00
Richard Roberts 5defdbe73f Fixed compile problems on windows 2013-11-05 16:06:10 +00:00
Frank Dellaert fccdc46180 Fixed some compile errors related to rename 2013-10-25 19:16:15 +00:00
Frank Dellaert def9b84e45 Added virtual solve method to NonlinearOptimizer that you can override, e.g., with Ceres
See example in testNonlinearOptimizer
As part of this, I also merged SuccessiveLinearizationParams into NonlinearOptimizerParams, which is now in its own separate file NonlinearOptimizerParams.h
2013-10-25 18:27:43 +00:00
Jing Dong 87f9a2ab03 Fix Vector_() to Vec() in gtsam_unstable/nonlinear 2013-10-22 04:35:21 +00:00
Chris Beall e799c9ffa9 tabs converted to two spaces 2013-10-10 17:52:57 +00:00
Richard Roberts 43d56b120a From Hmf6_unordered: getISAM2 and variables Reeliminated/Relinearized (d97dcacf186900d12003c399e7fe55e03ca34e3f) 2013-10-03 19:52:05 +00:00
Richard Roberts 0c7b2ec062 From Hmf6_unordered: Public isam2 - to be changed (10834edc1698d941be3203e8e6bea0bd4a573443) 2013-10-03 19:52:01 +00:00
Richard Roberts bf40956592 Merged from Hmf6_unordered 970392249a8c50153f24594c9c81acb740cedd06 2013-10-03 19:51:56 +00:00
Richard Roberts ae958ad0f5 Fixed testConcurrentIncrementalFilter 2013-08-19 22:07:32 +00:00
Luca Carlone 568335d21f In progress fixing filter/smoother unit tests 2013-08-19 21:33:13 +00:00