Commit Graph

7004 Commits (0e48e2ff0b1a90c048b83f3e8891d212b634ba6c)

Author SHA1 Message Date
Luca e96ceb2b4f extended example for robust kernels 2014-10-17 14:58:45 -04:00
Luca c10993a690 displaying nr of iterations for verbosity = TERMINATION 2014-10-17 14:58:45 -04:00
Jing Dong f258bfe044 add DerivedValue test for Cal3Unified 2014-10-17 14:44:37 -04:00
Jing Dong cdc121cf7d add in testSerialization 2014-10-17 14:25:42 -04:00
Jing Dong 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
Jing Dong 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
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 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
dellaert 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
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
Andrew Melim 103ec596d7 Remove empty file and some code cleanup 2014-10-15 00:03:57 -04:00
Andrew Melim 99caf8833a Finished ordering implementation 2014-10-14 23:46:12 -04:00
dellaert 00d0a7b045 Merge branch 'feature/BAD_stackAb' into feature/BAD 2014-10-15 01:20:01 +02:00
dellaert 649478f186 Should work but seg-faults 2014-10-15 01:19:14 +02:00
Andrew Melim ad74a4b8c9 Update ms_stdint.h in metis. Export libraries correctly 2014-10-14 19:14:59 -04: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 2092705d12 Allow for other Eigen matrix types 2014-10-15 00:27:43 +02:00
krunalchande cf4374563b Fixed Dynamics Factor and added debug cout statements to help fix indeterminent linear system exception 2014-10-14 18:08:26 -04: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
cbeall3 799beec7e2 fix signed/unsigned warnings 2014-10-14 17:00:03 -04:00
cbeall3 fcc49bd22a Fix for nasty intermittent TBB crashes in testEssentialMatrixFactor and testGeneralSFMFactor. Fixes issue 93 2014-10-14 16:30:13 -04:00
Andrew Melim 0771b1658b Ordering implementation, unit tests 2014-10-14 15:18:05 -04:00
dellaert 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
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 027759300d size_t argument for check 2014-10-14 11:13:09 +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
cbeall3 2560ddef99 Fix building with MKL on Mac OS 2014-10-14 00:04:28 -04: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
cbeall3 5c68e9e755 silence unused variable warning on Mac 2014-10-13 15:48:17 -04:00
Andrew Melim bf22a49504 Working ordering format for Metis_NodeND 2014-10-13 13:15:05 -04: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