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