Paul Furgale
5b5122d15b
Fixed a copy/paste error
2014-11-24 21:23:53 +01:00
Paul Furgale
07044137eb
A failing unit test for a custom chart
2014-11-24 21:14:59 +01:00
Frank Dellaert
c570f53e57
Merged in feature/BAD_using_charts (pull request #41 )
...
Working on a prototype of wrapping external types
2014-11-24 19:01:58 +01:00
Frank Dellaert
ea02e577f5
Merged in feature/expressions (pull request #45 )
...
Pull request for debugging Expression<double> issue
2014-11-24 18:40:31 +01:00
Paul Furgale
9f68344abb
Addressed code review
2014-11-24 12:43:30 +01:00
HannesSommer
db6c9ff378
swtichted to Eigen::MatrixBase<Derived> as far as possible for dTdA to gain some performance and not to forget some types at some level :).
2014-11-24 10:48:15 +01:00
dellaert
3bf92d1a47
Force eval
2014-11-24 09:58:47 +01:00
Paul Furgale
a44baac308
Added a function for testing charts
2014-11-24 09:29:14 +01:00
Paul Furgale
6fc3c450a7
Fixed the chart concept check and cleaned up a bit
2014-11-24 08:18:55 +01:00
Paul Furgale
df7470866f
More progress on easy Jacobian testing
2014-11-24 07:44:06 +01:00
dellaert
586ad610f8
Added more unit tests that expose compilation issue
2014-11-24 02:15:48 +01:00
dellaert
9322b3ba8b
Unit test verifies Jacobian and value
2014-11-24 00:08:34 +01:00
dellaert
e0f9f7a33e
Fourier prototype that unfortunately does not compile
2014-11-23 23:16:04 +01:00
dellaert
f40940dffe
Tiny changes
2014-11-23 23:15:25 +01:00
dellaert
149bfe1729
Chery-picked Paul's changes
2014-11-23 23:15:10 +01:00
Richard Roberts
f9ca07e610
Converted Vector(2|3) << ... to Vector2(...) or Vector3(...) syntax
2014-11-23 10:22:25 -08:00
dellaert
83abb4c6ed
unit test with manual Fourier
2014-11-23 18:04:54 +01:00
dellaert
f21fe5043a
Created a new expressions.h file in nonlinear
2014-11-23 17:31:33 +01:00
HannesSommer
6cc7b17687
proposal to fix alignment in BAD (issue #154 )
2014-11-23 13:51:47 +01:00
Richard Roberts
aa093a35da
Updated all comma initializer usages to use .finished()
2014-11-22 16:35:27 -08:00
dellaert
d00aeb7e70
Formatting and some small problems
2014-11-22 21:48:36 +01:00
HannesSommer
cc997dd774
adapted a view comments and friendships to the new virtual inheritance sceme
...
visibility fine tuning
2014-11-22 19:19:17 +01:00
Paul Furgale
3ef0eabff6
Merged in changes from develop
2014-11-22 14:55:32 +01:00
Paul Furgale
aae206b308
Merge branch 'develop' into feature/BAD_using_charts
2014-11-22 14:38:55 +01:00
Paul Furgale
e5fe5676b1
Working on a prototype of wrapping external types
2014-11-22 14:10:25 +01:00
HannesSommer
87ea6341f2
virtual inheritance for better readability and decoupling
2014-11-22 09:39:08 +01:00
HannesSommer
b4fe033d12
added CallRecord unit test
2014-11-21 23:04:58 +01:00
HannesSommer
32992cf05e
added missing overload for full dynamic matrix.
2014-11-21 23:04:58 +01:00
HannesSommer
6d0c1a44e1
- some small cleanup and improved readability.
...
- virtual overload warnings should not be issued anymore
2014-11-21 21:13:24 +01:00
HannesSommer
f699dd26bb
correct case in import
2014-11-21 21:10:12 +01:00
dellaert
c238e5852c
Now uses CallRecord.h
2014-11-21 15:48:29 +01:00
dellaert
2983cf33a6
Created CallRecord header
2014-11-21 15:48:10 +01:00
cbeall3
36a485169d
Refactor Ordering parameters. Now compiles and passes with gcc
2014-11-17 16:16:52 -05:00
HannesSommer
fb24ab586e
introduced a MaxVirtualStaticRows compile time constant and realized as many static rows specific virtual reverseAD methods in the CallRecord interface to speedup the Jacobian evaluatio.
2014-11-17 11:18:09 +01:00
HannesSommer
4966f5a942
mini cleanup and improve comment TODO
2014-11-17 11:18:09 +01:00
dellaert
d4b868aa12
Formatting and documentation
2014-11-14 11:20:36 +01:00
dellaert
865b0c0129
Fixed compile issue in Debug mode
2014-11-14 02:13:11 +01:00
Jing Dong
139ef0d61d
fix glog macro to assert
2014-11-08 22:16:32 -05:00
Renaud Dube
90ec6b1452
reverted extra spaces which were added in last commit
2014-11-07 12:11:08 +01:00
Renaud Dube
bd3f9db7df
inlined a fully specialized function template defined in a .hpp
2014-11-07 11:37:27 +01:00
dellaert
e0c4d84dd7
Fixed some tests/warnings in quaternion mode
2014-11-03 00:59:19 +01:00
Mike Bosse
11416cac65
Merge branch 'feature/BAD' into feature/BAD_generic_value_traits
...
Conflicts:
gtsam_unstable/nonlinear/tests/testAdaptAutoDiff.cpp
gtsam_unstable/nonlinear/tests/testExpressionFactor.cpp
2014-11-02 19:00:30 +01:00
dellaert
17d352bab4
Slight re-factor
2014-11-02 14:42:59 +01:00
dellaert
d2f56b13ed
Non-trivial noise models now correctly handled (at a small performance penalty, due to malloc of Vector b).
2014-11-02 14:37:52 +01:00
dellaert
90a0fa6e45
Check if active
2014-11-02 13:53:22 +01:00
dellaert
a8ab910c32
Merged twio changes in: the is_constrained() flag that does away with the dynamic cast, and the changes duy made in commit a61b49d
to remove the constrained noise model hack. At the same time, both linearize methods (in expressionFactor and NonlinearFactor) now make use of is_constrained().
2014-11-02 13:45:54 +01:00
dellaert
b9e3c3b116
Made unsafe constructor private, but made ExpressionFactor<T> a friend.
2014-11-02 12:01:52 +01:00
dellaert
cb69f2cb82
Fastest linearize so far. Putting 'unsafe' constructor in JacobianFactor itself makes a *huge* difference.
2014-11-02 11:40:48 +01:00
dellaert
7aaf4dae8c
Merge remote-tracking branch 'origin/feature/BAD_VerticalBlockMatrix' into feature/BAD_WriteableJacobianFactor
...
Conflicts:
gtsam_unstable/nonlinear/ExpressionFactor.h
2014-11-01 17:45:23 +01:00
dellaert
7debde7518
Moved to ExpressionFactor that now uses it - timing seems worse ?
2014-11-01 15:12:06 +01:00
dellaert
12e38a44e4
WriteableJacobianFactor will allow ExpressionFactor to write into the factor directly, (hopefull) eliminating huge overhead.
2014-11-01 14:13:08 +01:00
dellaert
a4fa61a7a4
Removed JacobianMap tests
2014-11-01 11:56:38 +01:00
dellaert
f38b0b0eed
Fixed unwhitenedError
2014-11-01 11:50:28 +01:00
dellaert
7b539fbb5c
Make JacobianMap a wrapper around a VerticalBlockMatrix, which avoids us having to make a vector of references into it
2014-11-01 11:35:49 +01:00
dellaert
593edd1e5c
Fixed asserts
2014-10-31 16:29:15 +01:00
dellaert
d0c3bc0c8e
Fixed tests
2014-10-31 16:27:54 +01:00
dellaert
768a4abc05
Does not need lambda
2014-10-31 16:27:46 +01:00
Sungtae An
a5b8d0fd35
Modified finding method
2014-10-31 11:06:26 -04:00
Sungtae An
6a20d35a60
Modified pointer expression
2014-10-31 07:28:07 -04:00
Sungtae An
133fcf20e2
Cleaned up some commented codes
2014-10-31 07:22:19 -04:00
Sungtae An
97d4120858
Changed the type of JacobianMap as std::vector
2014-10-31 07:10:53 -04:00
Mike Bosse
80187362b8
attemping to expose ChartValue for expressions with non DefaultCharts, but needs testing
2014-10-28 11:20:02 +01:00
Mike Bosse
bc094951ed
all values in Values container are now a ChartValue<ValueType, Chart=DefaultChart<ValueType> >
...
ChartValues are GenericValues and a Chart, which defaults to DefaultChart
had to make charts functional (ie no storage of the chart origin) so that they could be zero sized base class
otherwise there would have been a double of the memory for values (ones for the value, and once for the chart origin, which default to the same)
most tests work, execept for serialization based stuff, and const filtering of values.
2014-10-28 00:57:44 +01:00
Mike Bosse
4a3dc51f85
more tests work, except for serialization based tests
2014-10-24 23:47:02 +02:00
dellaert
e7ec6b3fa5
Fixed size
2014-10-23 12:04:16 +02:00
dellaert
49ff33602d
Undid change
2014-10-23 01:44:04 +02:00
dellaert
0501750c7c
Fixed accuracy and size issues in Quaternion mode
2014-10-22 22:54:25 +02:00
dellaert
48a6777935
Some refactoring
2014-10-22 16:26:40 +02:00
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
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
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
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