Commit Graph

177 Commits (ddc01736715df77ac533702f723f2d6f0820c4ee)

Author SHA1 Message Date
Alex Cunningham ddc0173671 Basic handling of constraints now works in factor graphs, assuming there is only one constraint on any given variable. 2009-11-10 04:36:07 +00:00
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