Alex Cunningham
a7b711db37
Removed constraint variations on graphs/factors
2009-11-10 04:33:39 +00:00
Alex Cunningham
2c37c94b5d
Replaced the householder transform with the weighted system
...
Removed constrained components from makefile, they will disappear shortly
2009-11-09 21:34:20 +00:00
Alex Cunningham
03985d16f6
Fixed equality checking with NaNs in Matrix
...
removed extraneous print statement in Vector
2009-11-09 16:57:30 +00:00
Chris Beall
01ee9246d7
fix Matlab toolbox to work with Frank's recent changes to gtsam.
2009-11-09 16:53:13 +00:00
Alex Cunningham
1ae81b59d8
Fixed vector comparisons that will erroneously return true when there are NaN values.
2009-11-09 16:47:37 +00:00
Frank Dellaert
a3de1964d7
BIG CHANGE:
...
1) eliminate methods no longer return a shared pointer. Shared pointers are good for Factors and Conditionals (which are also non-copyable), because these are often passed around under the hood. However, a BayesNet is simple a list of shared pointers and hence does not cost a lot to return as an object (which is compiler-optimized anyway: there is no copy). So, the signature of all eliminate methods changed to simply return a BayesNet<> object (not a shared pointer).
2) GaussianBayesNet::optimize is now replaced by optimize(GaussianBayesNet) and returns a VectorConfig and not a shared pointer
3) GaussianBayesNet and SymbolicBayesNet are now simply typedefs, not derived classes. This is desirable because the BayesTree class uses templated methods that return BayesNet<Conditional>, not a specific BayesNet derived class.
2009-11-09 07:04:26 +00:00
Frank Dellaert
7bd40e836d
Cleaned up and added test for VSLAMFactor
2009-11-09 04:46:34 +00:00
Frank Dellaert
e340178de5
Easy constructor
2009-11-09 04:46:08 +00:00
Frank Dellaert
dd1b023ca9
Fixed special case for root
2009-11-09 04:45:38 +00:00
Frank Dellaert
cc22e82ca6
Joint densities (covariances) now done. Was exceedingly easy :-)
2009-11-09 00:13:44 +00:00
Frank Dellaert
3464c6a36f
Create from a single string
2009-11-08 22:51:29 +00:00
Frank Dellaert
86173b66af
Clique marginal and dramatically simplified single variable marginal.
2009-11-08 22:51:12 +00:00
Frank Dellaert
10e618f360
New function marginals. Also: combine entire Bayes nets with push_back and push_front. And finally: some convenience constructors in GaussianBayesNet.
2009-11-08 22:50:26 +00:00
Frank Dellaert
58007a8167
Working recursive (but not cached) shortcut.
2009-11-08 04:41:01 +00:00
Frank Dellaert
d1b8925617
Construct symbolic version of any Bayes net
2009-11-08 04:39:54 +00:00
Frank Dellaert
532be063f9
new templated function combine
2009-11-08 02:50:19 +00:00
Frank Dellaert
93da9e0f2c
pop_front
2009-11-08 02:49:18 +00:00
Frank Dellaert
cc5a2c3183
Renamed double-templated functions to _eliminate and _eliminateOne, and created FactorGraph-specific eliminateOne methods to make life easier
2009-11-07 21:03:30 +00:00
Frank Dellaert
df3e5f2416
BIG: eliminate and eliminateOne now doubly templated functions, not methods.
...
Minor: Standardized on new shared_ptr naming convention:
shared_factor -> sharedFactor
conditional_ptr -> sharedConditional
node_ptr -> sharedClique
2009-11-07 19:31:39 +00:00
Frank Dellaert
f5d186522e
Standardized on new shared_ptr naming convention
2009-11-07 17:24:05 +00:00
Frank Dellaert
6339b5d19d
Made Node public
2009-11-07 15:58:45 +00:00
Alex Cunningham
7ef9ed950b
Improved performance of matrix scaling in LinearFactor::matrix_augmented
...
Added matrix scaling functions to scale either the rows or columns by values from a vector
2009-11-06 13:43:39 +00:00
Frank Dellaert
cd313e2f82
operator[] to retrieve clique
2009-11-06 05:55:29 +00:00
Frank Dellaert
e1716a39cd
Two changes: LinearFactor::sparse and LinearFactorGraph:sparse, and renamed VariableSet -> Dimensions, which is now a map from keys to integer variable dimensions. Merged in from the "sparse" branch created with Viorela.
2009-11-06 05:43:03 +00:00
Alex Cunningham
fb74ef03b2
Added to LinearFactor a matrix_augmented() function to get a single augmented matrix [A b]
...
Removed extra copying in LinearFactor::eliminate()
2009-11-05 15:08:58 +00:00
Alex Cunningham
6c5603de0c
Fixed remaining LinearFactor unit tests
...
Added equality check for Variable
2009-11-05 13:52:12 +00:00
Frank Dellaert
d9289d14b3
marginals on any scalar now work
2009-11-05 08:06:32 +00:00
Frank Dellaert
beabb62f29
More informative print
2009-11-05 08:05:54 +00:00
Frank Dellaert
bd54c39a73
Fixed bug in smoother example
2009-11-05 08:05:34 +00:00
Frank Dellaert
e87c19ed7a
ConditionalGaussian now stores sigmas
2009-11-05 06:59:59 +00:00
Frank Dellaert
88b8f4e16b
fixed unit test
2009-11-05 06:34:43 +00:00
Frank Dellaert
cabcda5a96
marginal compiles and runs for frontal node in clique
2009-11-05 06:30:50 +00:00
Frank Dellaert
7f516394df
Added dummy argument to work around compile conundrum
2009-11-05 06:30:10 +00:00
Frank Dellaert
06f07420d1
back()
2009-11-05 06:29:32 +00:00
Frank Dellaert
11fcd5a69d
KISS: just a map of pointers in BayesTree now
2009-11-05 05:29:47 +00:00
Frank Dellaert
3d334401f5
Constructor from BayesNet now in FactorGraph base class
...
FactorGraph::eliminate
Removed eliminate_partially
2009-11-05 04:56:59 +00:00
Frank Dellaert
e650676da7
Moved header to .h to fix MATLAB toolbox compilation
2009-11-05 03:51:08 +00:00
Chris Beall
3b258be8c4
about a dozen changes to make Matlab toolbox work again, but one error remains having to do with the forward declaration of class GaussianBayesNet.
2009-11-05 03:26:04 +00:00
Manohar Paluri
0ef7fe4a01
changed case of foreach ( it was capitals before and will not compile on linux )
2009-11-04 22:19:16 +00:00
Richard Roberts
e2414561be
Merged r895:900 from branch weightedQR - LinearFactorGraph now has sigmas and ConditionalGaussian now has precisions
2009-11-04 20:59:16 +00:00
Frank Dellaert
4865edb883
Removed debug code, added marginal function
2009-11-04 03:22:29 +00:00
Frank Dellaert
e9d942f81e
BayesNet is now list-based for fast bi-directional access
...
SLOW O(n) random access operator[key] provided
(should maybe be called [at] as it does bounds checking)
I also fixed a bug in equals.
2009-11-03 06:29:56 +00:00
Frank Dellaert
eab038651e
Renamed BayesNet::insert -> push_back. BayesTree now uses Bayes nets as nodes.
2009-11-02 05:17:44 +00:00
Frank Dellaert
a8d267c4ca
Small change necessitating lots of edits: Conditionals now include key of random variable
...
This simplifies Bayes nets quite a bit. Also created a Conditional base class, derived classes ConditionalGaussian and SymbolicConditional
Finally, some changes were needed because I moved some headers to .cpp
2009-11-02 03:50:30 +00:00
Frank Dellaert
943b692a6b
BIG CHANGE: I got rid of the BayesChain/ChordalBayesNet classes and we now simply have a BayesNet class. It will just happen to be chordal when it is the result of an elimination. This will simplify a lot of things.
...
The main renaming that happened is
BayesChain -> BayesNet
ChordalBayesNet -> GaussianBayesNet == BayesNet<ConditionalGaussian>
SymbolicBayesChain -> SymbolicBayesNet == BayesNet<SymbolicConditional>
2009-10-31 19:53:20 +00:00
Frank Dellaert
921cb0a8fc
Got rid of (defunct) "dump" methods
2009-10-31 17:13:36 +00:00
Frank Dellaert
c046fed37c
Bayes tree constructor implemented and tested with ASIA, as well as smoother example from frankcvs meeting
2009-10-31 16:57:36 +00:00
Frank Dellaert
1e5a2d692a
const
2009-10-31 16:56:06 +00:00
Frank Dellaert
040f407b0b
Removed constructor, use eliminate
2009-10-31 16:55:44 +00:00
Frank Dellaert
0f688302ad
Fixed bug in [parents]
2009-10-31 16:55:17 +00:00
Frank Dellaert
68d2f81f0a
Smoother now creates x1...xT, not x0 anymore
2009-10-31 16:54:38 +00:00
Frank Dellaert
fd5f43092f
Ordering is now a list and Testable
2009-10-31 15:24:22 +00:00
Frank Dellaert
e1f14b34c3
Implemented [equals] using binary predicate and STL's equal
2009-10-31 14:12:41 +00:00
Frank Dellaert
b9ceca7dc6
Templated binary predicate [equals] for use with STL's equal(...)
2009-10-31 14:11:48 +00:00
Frank Dellaert
53890c4ba6
Symbolic Bayes Tree successfully constructed
2009-10-31 05:12:39 +00:00
Frank Dellaert
cefeca149b
Moved template definitions to BayesTree-inl.h
2009-10-30 13:03:38 +00:00
Frank Dellaert
0d7d0e2161
Explicit template instantiation in .cpp files, so we can link with the code without having to include -inl.h everywhere...
2009-10-30 05:45:22 +00:00
Frank Dellaert
83e5286710
ChordalBayesNet is now derived from BayesChain
...
Explicit template instantiations
2009-10-30 04:54:11 +00:00
Frank Dellaert
dd3795ad5a
Symbolic eliminate now works, new compilation unit SymbolicFactor
2009-10-30 03:48:32 +00:00
Alex Cunningham
65b949c008
Fixed flaw in pseudoinverse calculation, and updated tests for Matrix and Vector
2009-10-29 20:12:07 +00:00
Frank Dellaert
80b162a412
LinearFactorGraph::eliminate_one is now FactorGraph::eliminateOne<ConditionalGaussian>
...
Symbolic version FactorGraph::eliminateOne<SymbolicConditional> also implemented and tested
2009-10-29 14:34:34 +00:00
Alex Cunningham
4c48bb08e1
Vector and Matrix updated with improved weighted householder operations and more tests.
2009-10-29 12:52:27 +00:00
Frank Dellaert
a513ae0287
Changed names and moved two LinearFactorGraph functions to FactorGraph
...
Added SymbolicFactorGraph compiulation unit and unit tests
Added symbolic combine constructor
2009-10-29 05:39:13 +00:00
Frank Dellaert
f0c23a2828
Moved [factors] to FactorGraph
2009-10-29 04:49:13 +00:00
Frank Dellaert
b6cee73571
Significant change: Made FactorGraph templated on Factor only, and moved error and probPrime to derived classes
...
Moved find_and_remove_factors to base class
Added and tested symbolic factor graph constructor and conversion from any factor graph type
2009-10-29 04:11:23 +00:00
Frank Dellaert
1f792a53ea
Made some progress on symbolic analysis
2009-10-28 02:57:38 +00:00
Frank Dellaert
50763ef764
Prototype for Bayes nets for Manohar
2009-10-27 20:44:40 +00:00
Frank Dellaert
bb15697cf9
Prototype framework for Bayes chain (new name for Chordal Bayes net) and Bayes tree class hierarchy
2009-10-27 20:23:19 +00:00
Frank Dellaert
94da98411c
Fixed NULL problem
2009-10-27 20:22:02 +00:00
Richard Roberts
e37e771c8e
My last commit broke the linearFactorN unit test, fixed now.
2009-10-27 15:31:45 +00:00
Richard Roberts
cb22a0bc52
Renamed variables in linearFactorN unit test
2009-10-27 15:13:13 +00:00
Alex Cunningham
37bc303492
Added weighted Householder transforms that use precisions perform QDR factorization. Functions create a weighted vector pseudoinverse, and then use the pseudoinverse to substitute a solution into system.
2009-10-27 14:21:22 +00:00
Frank Dellaert
626d06905c
Removed obsolete optimize call and documented better
2009-10-27 14:14:36 +00:00
Frank Dellaert
4d9ff77249
moved timing example here from EasySLAM
2009-10-27 13:34:36 +00:00
Frank Dellaert
422169873c
moved [symbol] function to LinearFactor
2009-10-27 13:33:44 +00:00
Brian Law
11f0d04cb6
made all classes that currently have an assert_equal "Testable"
...
- derive from testable as in class Point2 : Testable<Point2>
- moved print and equal declarations in .h right after the constructor
- similarly, moved implementations after constructors in .cpp file
- removed obsolete assert_equal
2009-10-26 19:26:51 +00:00
Frank Dellaert
3b30fe50b0
Moved print and equals to -inl.h
2009-10-25 22:27:18 +00:00
Frank Dellaert
7a968962db
Order of arguments = expected, then actual
2009-10-25 22:26:56 +00:00
Frank Dellaert
57bc102548
Equals now checks for NULLs
2009-10-25 14:25:17 +00:00
Frank Dellaert
f54ba387fe
FactorGraph, ChordalBayesNet, and ConditionalGaussian now Testable
2009-10-24 23:14:14 +00:00
Frank Dellaert
3792c79706
Fixed NonlinearFactor2 equals and added some unit tests for equals
2009-10-24 20:01:47 +00:00
Frank Dellaert
563abc2b3f
formatting only
2009-10-24 04:07:32 +00:00
Chris Beall
baef89ccf0
updated find_factors_and_remove to use map of factor indices to gather factors connected to a variable. factors are set to null instead of being erased. also updated size() to count non-NULL factors, and print() to only print non-NULL factors. added new unit test which tries to remove the same variable twice.
2009-10-23 00:56:40 +00:00
Chris Beall
52bedcad3a
order 1 factors by using map
2009-10-22 21:33:00 +00:00
Frank Dellaert
cd3e3d8a86
Fairly substantial change: Factor now Testable, MutableLinearFactor gone
...
The latter was prompted by the fact that assert_equal did not like mixing LinearFactor and MutableLinearFactor
But MutableLinearFactor always was a bit of a kluge. We should eradicate all non-const on LinearFactor some other way.
2009-10-22 17:23:24 +00:00
Richard Roberts
0d580032c5
Added unit test for creating an n-ary LinearFactor
2009-10-22 15:52:39 +00:00
Frank Dellaert
2aec16d3cf
Combined evaluation/derivatives now return the function value instead of using a pointer
2009-10-22 14:44:27 +00:00
Frank Dellaert
6c8531ed9c
Point2 now Testable, removed obsolete assert_equal, as every testable class can use the template version in Testable.h
2009-10-22 14:43:36 +00:00
Frank Dellaert
9a579fcdaf
No need for Testable constructors
2009-10-22 14:42:19 +00:00
Richard Roberts
e52c574e46
Added an empty virtual destructor to fix a compile warning
2009-10-22 14:27:44 +00:00
Richard Roberts
ae57441c3d
Added a constructor to create an n-ary factor from an std::vector of key/A-matrix pairs
2009-10-22 14:27:03 +00:00
Frank Dellaert
c3b8a20b5c
Added new test for find_factors_and_remove and deleted obsolete one
2009-10-22 13:28:37 +00:00
Frank Dellaert
1b199a4d3b
Added a "factors" function that returns indices to all factors connected to a variable.
2009-10-22 05:02:31 +00:00
Viorela Ila
3e6739f2fd
Now Matlab toolbox compiles!!
2009-10-20 20:41:45 +00:00
Viorela Ila
019a05d93d
mex: compile of ' "eliminate.cpp"' error fixed. but still not compiling
2009-10-20 18:57:33 +00:00
Frank Dellaert
543ad1409f
Changing from set to vector: insert -> push_back
2009-10-20 15:22:06 +00:00
Frank Dellaert
19bdb5c2f9
Better name for delta: linearizeAndOptimizeForDelta
2009-10-19 19:12:48 +00:00
Frank Dellaert
d8c04ecfcb
Fixed serialization include header.
2009-10-18 17:35:15 +00:00
Frank Dellaert
ed616a26ed
Finally gave in and made LinearFactorSet into a vector. Pragmatism wins.
2009-10-18 16:49:10 +00:00
Frank Dellaert
0d66ee8f72
comments only
2009-10-15 14:56:40 +00:00