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
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
Alex Cunningham
c6cf4d2dab
Removed use of convenience libraries for tests - wasn't really supported in current version
2013-08-19 15:32:21 +00:00
Alex Cunningham
4b12d6f794
Moved Symbol and LabeledSymbol to inference as they are no longer specific to nonlinear optimization
2013-08-19 15:32:16 +00:00
Alex Cunningham
f9dcf31c2b
Fixing examples and some tests for gtsam_unstable/nonlinear. testConcurrentIncrementalFilter doesn't compile and is disabled, testIncrementalFixedLagSmoother is enabled and builds, but fails.
2013-08-19 15:32:08 +00:00
Richard Roberts
ce9e9b4a91
Added "TODO: correct?" comments
2013-08-16 21:16:07 +00:00
Richard Roberts
192962d96f
Fixed a couple problems in converted ConcurrentIncrementalFilter and ConcurrentIncrementalSmoother
2013-08-16 21:16:06 +00:00
Luca Carlone
3701dc6322
Changes in CFS for unordered (still work in progress)
2013-08-15 22:12:09 +00:00
Luca Carlone
6337a65ce7
Updated Incremental Smoother to unordered
2013-08-15 22:12:07 +00:00
Luca Carlone
e4f65eacf8
Updating ConcurrentIncrementalSmoother/Filter to work with unordered (work in progress)
2013-08-14 19:12:24 +00:00
Luca Carlone
4dfa2506ab
ConcurrentFilterAndSmoother updated and working with the unordered version of GTSAM
2013-08-13 22:30:08 +00:00
Richard Roberts
d9c9682f6e
Merge branch 'svn/trunk'
...
Conflicts:
gtsam_unstable/slam/BetweenFactorEM.h
gtsam_unstable/slam/tests/testBetweenFactorEM.cpp
2013-08-12 21:47:36 +00:00
Richard Roberts
f1c9322d37
Removed old VerticalBlockView and SymmetricBlockView (replaced with VerticalBlockMatrix and SymmetricBlockMatrix)
2013-08-12 21:41:05 +00:00
Richard Roberts
7a027be7e5
Fixed unit tests compiling on windows
2013-08-12 16:25:13 +00:00
Richard Roberts
0db8e446d5
Disabled gtsam_unstable/nonlinear filters and smoothers
2013-08-11 18:40:39 +00:00
Richard Roberts
4585fd1caa
Merge branch 'svn/trunk'
...
Conflicts:
gtsam/navigation/tests/testInertialNavFactor_GlobalVelocity.cpp
gtsam/nonlinear/ISAM2.cpp
gtsam/nonlinear/ISAM2.h
gtsam/slam/tests/testBetweenFactor.cpp
gtsam_unstable/nonlinear/ConcurrentBatchFilter.cpp
gtsam_unstable/nonlinear/tests/testConcurrentBatchFilter.cpp
gtsam_unstable/nonlinear/tests/testConcurrentBatchSmoother.cpp
gtsam_unstable/slam/SmartProjectionFactor.h
2013-08-11 18:16:56 +00:00
Stephen Williams
f41d4b879b
Added the ability to remove factors from ConcurrentIncrementalFilter
2013-08-10 17:16:47 +00:00
Stephen Williams
34a3a6ea49
Added the ability to remove factors from the ConcurrentBatchFilter
2013-08-10 17:16:38 +00:00
Stephen Williams
ebc6a66c3a
Updated to the marginal factor calculation in BatchFixedLagSmoother to
...
be more efficient
2013-08-10 17:16:31 +00:00
Stephen Williams
12d003229a
Fixed missing '}'
2013-08-10 17:16:19 +00:00
Stephen Williams
c33c6e2c70
Added unit tests for Concurrent Incremental Filter and Smoother
2013-08-10 17:15:48 +00:00
Stephen Williams
915dc98bd2
Updated unit tests for Concurrent Batch Filter and Smoother
2013-08-10 17:15:38 +00:00
Stephen Williams
f656e93202
Created Concurrent Incremental Filter and Smoother
2013-08-10 17:15:31 +00:00
Stephen Williams
663c598591
Updated Concurrent Batch Filter and Smoother to the latest versions
2013-08-10 17:15:20 +00:00
Stephen Williams
1dc0e6192b
Added accessor functions for internal data structures to
...
IncrementalFixedLagSmoother
2013-08-10 17:15:03 +00:00
Alex Cunningham
4a4e16485c
Making more things in gtsam_unstable compile
2013-08-08 20:08:54 +00:00
Alex Cunningham
883c870dff
Removed unnecessary summarization files in gtsam_unstable, restricted compilation of gtsam_unstable for components needing iSAM2 - core gtsam_unstable library builds
2013-08-08 20:08:52 +00:00
Richard Roberts
e2f8dd866d
Merge branch 'svn/trunk'
...
Conflicts:
gtsam/linear/GaussianBayesTree.cpp
gtsam/linear/GaussianBayesTree.h
gtsam/linear/VectorValues.h
gtsam/linear/tests/testVectorValues.cpp
gtsam_unstable/nonlinear/sequentialSummarization.cpp
2013-08-06 18:33:24 +00:00
Richard Roberts
2d60d2cdfa
Fixed more unit tests
2013-08-06 18:04:40 +00:00
Richard Roberts
e39d100b6a
Made most global unit tests compile, includes dogleg, iterative, kalman filter, etc
2013-08-06 13:44:22 +00:00