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 |
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
|
5cfe761f27
|
Timing multi-threaded code
|
2014-10-10 17:17:20 +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
|
31c138d0d6
|
Profile Bin(Leaf,Un(Bin(Leaf,Leaf))) by default
|
2014-10-08 17:52:46 +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
|
4ac065fab4
|
Show explanation of timing
|
2014-10-08 17:27:46 +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
|
d7022a21c7
|
More samples to average
|
2014-10-07 20:11:19 +02:00 |
dellaert
|
c4a92acde1
|
Avoid argument temporaries
|
2014-10-07 19:35:44 +02:00 |
dellaert
|
84987aa351
|
Deal with Rot3 changes
|
2014-10-07 19:35:20 +02:00 |
dellaert
|
3c1c9c6d12
|
Switch to pointers - nice improvement
|
2014-10-07 18:11:12 +02:00 |
dellaert
|
982dc29d2f
|
Time ternary version as well
|
2014-10-07 18:10:53 +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
|
921b79f446
|
No more default argument
|
2014-10-07 01:01:16 +02:00 |
dellaert
|
0a6fe0f0a8
|
No more default argument
|
2014-10-07 00:44:40 +02:00 |
Luca
|
7a4f307342
|
moved biasedGPS and GaussMarkov to unstable
|
2014-10-06 13:11:40 -04: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
|
51eab1068f
|
Time the most common SFM expression
|
2014-10-06 13:57:37 +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
|
3f017bf51f
|
An optimized version
|
2014-10-03 14:35:39 +02:00 |
dellaert
|
c20b588fe0
|
timing, is pretty bleak for Expressions
|
2014-10-03 14:19:23 +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
|
d5709facf6
|
Added Pose2SLAMExample
|
2014-10-02 20:20:00 +02:00 |
dellaert
|
8f856ceaf8
|
Renamed
|
2014-10-02 20:19:49 +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
|
0800b83285
|
Slight efficiencies
|
2014-10-02 11:44:16 +02:00 |
dellaert
|
bef23a2008
|
ExpressionExample now only uses BADFactors and yields same result as SFMExample
|
2014-10-02 11:21:24 +02:00 |
dellaert
|
ebb091d390
|
BadFactor is now a functioning NoiseModelFactor
|
2014-10-02 11:01:39 +02:00 |
dellaert
|
3f5aa0f23e
|
Expression version of SFMExample (in progress)
|
2014-10-01 14:10:54 +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 |
dellaert
|
ef52e12f87
|
Split off BADFactor code from Expression
|
2014-09-30 12:29:57 +02:00 |
dellaert
|
5a1ea6071b
|
Split off ExpressionNode hierarchy
|
2014-09-30 12:20:02 +02:00 |
dellaert
|
e2f6f01941
|
Some cleanup of headers/old code
|
2014-09-30 12:12:17 +02:00 |
dellaert
|
e789de2353
|
Check derivatives of compose
|
2014-09-29 12:14:59 +02:00 |
dellaert
|
05c49601ed
|
Added Expression header
|
2014-09-29 12:06:04 +02:00 |
Paul Furgale
|
de3e1c3ed1
|
Fixed the product compilation
|
2014-09-29 07:22:25 +02:00 |
dellaert
|
10a35f3535
|
Structure for compose. Does not compile (uncomment line 492)
|
2014-09-28 17:50:36 +02:00 |
dellaert
|
7be6ac0e8c
|
Now compiles but product construction fails because optional derivatives can't be delivered by the operator*()
|
2014-09-28 10:22:19 +02:00 |
dellaert
|
11187a4c0d
|
I added operator logic but can't get it to compile
|
2014-09-27 18:22:37 +02:00 |