Commit Graph

880 Commits (02524f42e7893fc7b3232f85f8077fb6c20bf45c)

Author SHA1 Message Date
dellaert 0f53c8d5ec Timing of Ceres AutoDiff adaptor 2014-10-22 12:49:18 +02:00
dellaert f44e6f0187 Moved AdaptAutoDiff template in its own header file 2014-10-22 11:41:04 +02:00
dellaert 516bb4b0b1 Isolated Snavely example 2014-10-22 11:23:35 +02:00
dellaert 439f51ec7f test out invoke 2014-10-22 10:10:58 +02:00
dellaert 113b9d2e74 Got rid of unnecessary LieVector usage that broke fixed-code 2014-10-22 01:32:59 +02:00
dellaert 1eb5e185e5 New numericalDerivatives with traits an Charts - still some segfaults, *and* there should be no need for (a) multiple prototypes to match against c++ pointers, (b) the use of explicit template arguments. A task for someone... 2014-10-21 18:50:52 +02:00
dellaert fcbc1e90cf More traits 2014-10-21 18:03:28 +02:00
dellaert 224b71d696 Created testManifold 2014-10-21 12:54:28 +02:00
dellaert 0acffe5ae9 Fixed bug in DefaultChart: keeping a reference s never a good idea. 2014-10-21 11:13:14 +02:00
dellaert 25ad9ade05 Moved AdaptAutoDiff into its own test 2014-10-21 10:42:30 +02:00
dellaert bf16446f92 Deal with traits changes 2014-10-21 01:26:17 +02:00
dellaert e0841fb3e6 No more Ceres dependecy, copied relevant Ceres files here (for now) 2014-10-20 23:53:56 +02:00
dellaert bce84ca4db Successfully created Expression from AutoDiff function! 2014-10-20 15:38:27 +02:00
dellaert bf5580d518 AdaptAutoDiff now works with RowMajor Eigen matrices 2014-10-20 14:39:28 +02:00
dellaert df5e584412 Compiles, but Jacobains not correct yet 2014-10-20 14:32:20 +02:00
dellaert a423f284e9 Canonical coordinates prototype, works for Snavely 2014-10-20 14:23:08 +02:00
dellaert 821f776118 Wrapper works to some extent 2014-10-20 09:43:32 +02:00
dellaert 7ebc8e969f Charts with default constructors 2014-10-20 09:29:45 +02:00
dellaert 63ae33088e Some success on the way to autodiff 2014-10-19 23:47:59 +02:00
dellaert 8ee16c9018 Comments for Paul 2014-10-19 11:19:09 +02:00
dellaert eac76cd0f0 Some progress on defining interface 2014-10-19 11:18:36 +02:00
dellaert 6e142184cc Implemented is_manifold and dimension for all types in testExpressionFactor 2014-10-19 00:35:25 +02:00
dellaert c32d2bb3b2 Fixed comments 2014-10-18 23:48:51 +02:00
dellaert d436d99146 Moved stuff to Manifold.h 2014-10-18 23:25:25 +02:00
dellaert fcda501ee2 double as manifold. No more LieScalar ! 2014-10-18 18:13:33 +02:00
dellaert ed6a2b6eff Charts !!!! 2014-10-18 17:11:28 +02:00
dellaert 9c97b1d8a0 Some more refactoring 2014-10-18 16:45:04 +02:00
dellaert 66b3081603 localCoordinates and retract 2014-10-18 15:02:22 +02:00
dellaert 10cfd47404 TangentVector meta-function 2014-10-18 14:29:40 +02:00
dellaert ec69949f43 Point2 specialized 2014-10-18 14:22:01 +02:00
dellaert f08dc6c031 More boost-style traits 2014-10-18 14:16:24 +02:00
dellaert 4c33444415 Snavely tested 2014-10-18 13:16:44 +02:00
dellaert bdf12b14b9 Add Snavely cost function 2014-10-18 12:35:02 +02:00
dellaert 7018afdd58 Slight refactor of numerical derivatives 2014-10-18 12:34:05 +02:00
dellaert 2972671064 Use boost::bind to avoid code duplication 2014-10-18 12:29:14 +02:00
dellaert db037c96c5 Implemented manifold_traits to allow numerical derivatives wrpt Matrix arguments 2014-10-18 12:12:25 +02:00
dellaert 2cbba15573 ceres style functor 2014-10-18 00:29:18 +02:00
dellaert 02d25f6658 New tests on traceSize 2014-10-16 15:07:05 +02:00
dellaert 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
dellaert 944422e295 Only ExpressionFactor needs dimensions! Also, add dimensions at construction -> speeds up linearize. 2014-10-16 11:15:47 +02:00
dellaert 3413b98331 New storage sizes 2014-10-15 14:30:36 +02:00
dellaert 4a854f7e22 No using namespace in headers 2014-10-15 11:01:27 +02:00
dellaert 898c06ccbb New multi-threaded, realistic SFM example (1M factors, not 1M calls on same factor) 2014-10-15 11:01:02 +02:00
dellaert 79ff0c54f9 createUnknowns 2014-10-15 10:38:54 +02:00
dellaert 649478f186 Should work but seg-faults 2014-10-15 01:19:14 +02:00
dellaert 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
dellaert c88b2a5902 Fixed bizarre link erro as well as off-by-1 bug 2014-10-15 00:34:28 +02:00
dellaert 0f055f7910 Pass matrix to VerticalBlockMatrix constructor 2014-10-15 00:28:53 +02:00
dellaert 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
dellaert baaeaacabe Made dimensions constant property. Now performance is ***blazing***, way past custom factors. 2014-10-14 17:46:57 +02:00
dellaert c971207abf Switched to vector for dimensions 2014-10-14 17:16:31 +02:00
dellaert 1c3f328fb2 Successful switch to Blocks ! 2014-10-14 15:43:41 +02:00
dellaert f3e1561105 Prepare VerticalBlockMatrix for filling 2014-10-14 11:13:49 +02:00
dellaert 4c76f39009 Now uses dimensions 2014-10-14 09:55:34 +02:00
dellaert d8d94d0c34 dimensions implemented and tested 2014-10-14 09:53:47 +02:00
dellaert 781cc6daa9 keys now from expression_ 2014-10-14 08:59:01 +02:00
dellaert 0a41b0a027 Moved meta-programming tests to testExpressionMeta.cpp 2014-10-14 08:53:16 +02:00
dellaert ef5bf03c81 Clean up 2014-10-13 23:04:30 +02:00
dellaert 70f0caf0e3 Experimenting w Fusion 2014-10-13 22:50:47 +02:00
dellaert dda91df6e1 On the way to full fusion: Optional meta-function now separate from Jacobian. 2014-10-13 18:32:58 +02:00
dellaert ba0b68110f Boost Fusion needed to access values :-( 2014-10-13 13:56:51 +02:00
dellaert a52ff52941 Try some meta-transforms 2014-10-13 13:34:00 +02:00
dellaert 1c1695353e Now we can apply ExecutionTrace and Expression as meta-functions 2014-10-13 13:04:37 +02:00
dellaert c11d7885e1 Comments 2014-10-13 11:55:16 +02:00
dellaert 74269902d7 Big collapse now realized all the way through 2014-10-13 11:37:47 +02:00
dellaert 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
dellaert bc9e11f43c Pre-big collapse: prototype recursively defined inner Record2 type 2014-10-13 10:10:46 +02:00
dellaert 7fde47c48b No more JacobianTA typedefs -> all use Jacobian<T,A> now. 2014-10-13 09:25:06 +02:00
dellaert 7848d74928 Detailed explanation of recursive class composition pattern.
Jacobian type now defined in argument.
2014-10-13 08:49:12 +02:00
dellaert 7f621af54a Fixed bug 2014-10-13 00:57:11 +02:00
dellaert 2e8d868cd2 keys have been implemented 2014-10-13 00:37:46 +02:00
dellaert a9d9fcd241 FunctionalNode inherited for all three functional ExpressionNode sub-classes 2014-10-13 00:31:03 +02:00
dellaert 8100d89094 So much better as methods 2014-10-12 23:57:08 +02:00
dellaert 55cc4ba56c Switched names of fold result and meta-function that is folded over 2014-10-12 23:31:58 +02:00
dellaert ef21a4ba4a Major re-org in preparation of recursive Functional nodes 2014-10-12 23:03:33 +02:00
dellaert 408be628d2 Small change in meta-programming, big improvement in clarity 2014-10-12 22:17:21 +02:00
dellaert 107bcd8bb4 Going forwards, we default to reverse :-) 2014-10-12 22:04:40 +02:00
dellaert 4d1eb05c7d Passing JacobianMap as an argument now.. 2014-10-12 20:16:08 +02:00
dellaert dc541f1051 made traceSize an instance variable 2014-10-12 18:52:12 +02:00
dellaert 7a5f48f6dd Fixed typo in assert 2014-10-12 12:20:12 +02:00
dellaert fea2eb0b5f Inlined VerticalBlockMatrix construction 2014-10-12 11:05:43 +02:00
dellaert ed62271f81 Dealing with constrained noise model 2014-10-12 10:52:07 +02:00
dellaert 86d3e559e6 Merge branch 'feature/BAD' into feature/BAD_linearize 2014-10-11 23:07:40 +02:00
dellaert c9f80536c0 Added a constraint model 2014-10-11 23:07:23 +02:00
dellaert 3c6f7a42e6 Merge branch 'feature/BAD' into feature/BAD_linearize: easier trace/dTdA access 2014-10-11 22:31:43 +02:00
dellaert c776e87f78 Refactoring for readability/sanity 2014-10-11 21:33:07 +02:00
dellaert 0c7ea68f2f Now overwriting linearize as preparation for direct VericalBlockMatrix 2014-10-11 17:05:53 +02:00
dellaert 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
dellaert 88f9a423c5 Numbered types avoid ambiguity 2014-10-11 14:19:39 +02:00
dellaert ecf6462a25 Victory!! Unit tests work! 2014-10-11 13:07:58 +02:00
dellaert 599e232d1d traceSize, two tests work 2014-10-11 12:11:22 +02:00
dellaert 9585823d5d ...but works with correct size ! 2014-10-11 11:32:52 +02:00
dellaert deed7b8018 Unary prints, but still-faults downstream 2014-10-11 11:30:06 +02:00
dellaert 05f78b6dca Re-factor, allow traceExecution 2014-10-11 11:29:42 +02:00
dellaert 1f692638f5 Accessing matrices works 2014-10-11 11:04:39 +02:00
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