Commit Graph

528 Commits (4fb83694a70396e70a492a76eb3ae16f4e94547f)

Author SHA1 Message Date
Richard Roberts 79a3b8dd30 Derive BayesTreeOrphanWrapper from conditional instead of factor 2013-08-01 21:57:18 +00:00
Richard Roberts 60d5feb5cf Working on ISAM 2013-07-29 23:56:04 +00:00
Richard Roberts 3ade190128 Renamed old classes to "Ordered" and removed "Unordered" name from new classes 2013-07-29 23:55:40 +00:00
Richard Roberts 5746dedacb Enabled and made GaussianBayesTree unit tests pass 2013-07-29 23:54:38 +00:00
Richard Roberts a7540a7305 Removed unused code 2013-07-27 18:35:31 +00:00
Richard Roberts 619c772a80 Updated and made removeTop unit tests pass 2013-07-27 18:33:43 +00:00
Richard Roberts 594c0412cb Adjusted parameters 2013-07-27 18:33:42 +00:00
Richard Roberts 1ee51fb6f5 A couple cleanups 2013-07-26 21:03:10 +00:00
Richard Roberts d3afcf9770 Changed parameter 2013-07-26 18:00:36 +00:00
Richard Roberts 3118f6bb9f JunctionTree keeps track of "problem size" at each node 2013-07-26 01:10:16 +00:00
Richard Roberts 0b13c437fe Updated print functions 2013-07-26 01:10:12 +00:00
Richard Roberts c788c525ea Added timing statements in new code 2013-07-23 18:34:23 +00:00
Richard Roberts 65657916ab SymbolicBayesTreeUnordered shortcut and marginal unit tests pass 2013-07-23 16:14:56 +00:00
Richard Roberts aef3ba5e56 Fixed bug in COLAMD ordering (unordered branch) 2013-07-23 03:53:00 +00:00
Richard Roberts a28b9152e6 Fixed BayedTreeUnordered copying, a few small bugs 2013-07-23 02:17:11 +00:00
Richard Roberts 472f246b97 Combined changes - fixed up push_back and += functions in FactorGraphUnordered, enabled BayesTree marginals/shortcut code and unit tests, and cleaned up other template arguments, etc. 2013-07-23 02:17:09 +00:00
Richard Roberts 25de39c481 Added typedef 2013-07-23 02:17:04 +00:00
Richard Roberts b0f0c71d01 Added constrained COLAMD functions 2013-07-23 02:17:03 +00:00
Richard Roberts 38c1066750 Readded BayesTree operator[] 2013-07-23 02:17:01 +00:00
Richard Roberts 6842f4a13b Made argument order in elimination functions consistent 2013-07-17 03:13:26 +00:00
Richard Roberts b857dab6a9 Renamed unit tests already converted to 'Obsolete' 2013-07-17 03:13:00 +00:00
Richard Roberts dae249be2e Tweak with push_back 2013-07-16 20:22:04 +00:00
Richard Roberts 3f73d7801c Fixed eliminating empty graph 2013-07-16 20:22:02 +00:00
Richard Roberts 132cc2ea72 Fixes in EliminateableFactorGraph header 2013-07-16 20:22:01 +00:00
Richard Roberts 333903c4aa Fixed factor graph construction and push_back from iterators and containers over plain and shared_ptr objects 2013-07-16 17:37:08 +00:00
Richard Roberts e9f30660b3 Fixing constructors and unit tests 2013-07-16 03:57:32 +00:00
Richard Roberts c954b87441 Interface tweaks 2013-07-16 00:33:25 +00:00
Richard Roberts 82df8193b6 Changed back to single-threaded elimination for now, until the code is optimized 2013-07-12 22:27:52 +00:00
Richard Roberts 3d62299789 Fixed bugs and compile errors for elimination and back-sub 2013-07-09 17:50:51 +00:00
Richard Roberts db8fcfaa4f Switched to parallel elimination 2013-07-09 17:50:49 +00:00
Richard Roberts 74c503faaa Formatting 2013-07-09 17:50:42 +00:00
Richard Roberts 40bf395856 Serialization fix 2013-07-09 17:50:40 +00:00
Richard Roberts 9bdc5f1113 Small cleanups and fixes in included header files, functions in header file vs cpp/inst file, formatting, private/public, and inheritance. 2013-07-09 17:50:38 +00:00
Richard Roberts b0836ac57c Commented out Hessian, cholesky, and gradient code so that library compiles 2013-07-09 17:50:32 +00:00
Richard Roberts 21f8079924 Standardizing interfaces 2013-07-08 01:33:43 +00:00
Richard Roberts ed6a077e9e Made FactorGraph equals protected since it should be overridden 2013-07-05 20:45:56 +00:00
Richard Roberts 79ce96dceb Cleanups in BayesTree and SymbolicBayesTree 2013-07-02 14:54:20 +00:00
Richard Roberts 4fa8332c77 Fixed errors and warnings in new unordered code 2013-07-01 20:19:41 +00:00
Richard Roberts 67f3109e75 Fixed warnings in preexisting code 2013-07-01 20:19:36 +00:00
Richard Roberts 5cc13abbf1 Fixed size_t/Key/Index types 2013-07-01 20:19:31 +00:00
Richard Roberts 878f87fd25 Added invert to OrderingUnordered 2013-07-01 20:19:29 +00:00
Richard Roberts 115768abc6 Comment formatting 2013-06-28 18:14:04 +00:00
Richard Roberts 317ce7ada5 Finished elimination traits class 2013-06-28 18:14:03 +00:00
Richard Roberts 7b3ef381c1 Starting to add elimination traits class 2013-06-27 23:03:38 +00:00
Richard Roberts b9016adbd6 Tweaks to factor constructors and other small cleanups 2013-06-27 23:03:36 +00:00
Richard Roberts 99b1ab4754 Added FactorGraph constructor from BayesTree in unordered code. Made FactorGraph += operator templated so can += any type that works with push_back. 2013-06-24 19:30:18 +00:00
Richard Roberts 9882d8b34e public addClique function 2013-06-24 19:30:15 +00:00
Richard Roberts 9e373437a7 Removed unused BayesTreeCliqueDefault 2013-06-24 19:30:12 +00:00
Richard Roberts 123657e3d0 Merged from branch 'trunk' 2013-06-24 15:28:16 +00:00
Alex Cunningham 12d083e476 Added serialize() 2013-06-20 17:08:31 +00:00
Richard Roberts d85a437c90 public/protected/private visibility fixes and fixes with base/derived classes 2013-06-17 21:16:08 +00:00
Richard Roberts 642eca5fc5 Added partial sequential and multifrontal elimination and const fixes 2013-06-17 21:16:06 +00:00
Richard Roberts 8f9d5ec2e2 Merge branch 'trunk' 2013-06-17 21:15:57 +00:00
Alex Cunningham 23b326824a Added actual check to a test 2013-06-11 20:26:34 +00:00
Alex Cunningham ee21ef61a6 Added exists() to FactorGraph to allow for checking whether a factor exists at a given index. Necessary for matlab interface. 2013-06-06 18:07:55 +00:00
Richard Roberts 71dd480b95 Fixed bug in JunctionTree construction with merging the wrong children - cleaned up some unit tests and added a sequential elimination ASIA test. 2013-06-06 15:36:58 +00:00
Richard Roberts 7f3d62eccd Copied over all existing inference and symbolic unit tests that should now be symbolic. More work on multifrontal elimination. 2013-06-06 15:36:55 +00:00
Richard Roberts ec2df2df3c More work on elimination and BayesTree 2013-06-06 15:36:51 +00:00
Richard Roberts f2fbd14f96 More work on BayesTree, replaced some print functions with generic tree print, moved Key, and some formatting fixes. 2013-06-06 15:36:43 +00:00
Richard Roberts d11833317f Adding elimination algorithms to factor graph eliminateable base class 2013-06-06 15:36:38 +00:00
Richard Roberts 626d66bdf4 Working on BayesTreeUnordered 2013-06-06 15:36:37 +00:00
Richard Roberts 3c7558d4be Created BayesTreeUnordered 2013-06-06 15:36:35 +00:00
Richard Roberts 12ba0351d0 Using CloneForest in EliminationTree and JunctionTree 2013-06-06 15:36:33 +00:00
Richard Roberts fb3dc0778d Removed cvsignore in svn 2013-06-06 15:36:25 +00:00
Richard Roberts bbad690f65 Working on JunctionTree elimination / BayesTree 2013-06-06 15:36:24 +00:00
Richard Roberts b4d282f67e Started implementing junction tree construction 2013-06-06 15:36:21 +00:00
Richard Roberts 5b1ac91c85 Converted elimination and printing of elimination trees to use generic DFS code 2013-06-06 15:36:20 +00:00
Richard Roberts df728a969c In the middle of converting to generic DFS code but committing to save history 2013-06-06 15:36:18 +00:00
Richard Roberts 7dfd999673 Changed order of conditionals created during elimination. Added unit test for disconnected graphs 2013-06-06 15:36:13 +00:00
Richard Roberts 9bd7af848c Fixed remaining problems in elimination 2013-06-06 15:36:12 +00:00
Richard Roberts d5e721a1d0 Continued work on unordered classes and elimination algorithm 2013-06-06 15:36:11 +00:00
Richard Roberts 5d05737798 Continued work on unordered classes and elimination algorithm 2013-06-06 15:36:02 +00:00
Richard Roberts ffc55ad026 Added a bunch of Unordered classes, elimination algorithm in progress 2013-06-06 15:35:58 +00:00
Alex Cunningham 228a26947f Removed checkConsistency() from BayesTree 2013-05-22 17:27:44 +00:00
Alex Cunningham 15fb7234e6 Added check to prevent trying to add disconnected factors in iSAM1 2013-05-22 17:27:43 +00:00
Alex Cunningham 41b0b90376 Added nrNodes() and checkConsistency() to BayesTree 2013-05-22 17:27:42 +00:00
Richard Roberts e6993668ef Disabled extra debug-mode consistency checks that may affect runtime complexity, these are now only enabled when GTSAM_EXTRA_CONSISTENCY_CHECKS is defined 2013-05-20 17:26:53 +00:00
Stephen Williams 07c4c95f18 Added serialization unit tests for binary files 2013-05-08 13:23:46 +00:00
Richard Roberts eeef9eab32 Generating config.h file in CMake with quaternion mode flag, dataset paths. Also added CMake option to use system-installed Eigen, which works by generating a global eigen include file containing the corresponding include paths. 2013-04-25 15:57:15 +00:00
Richard Roberts 547323cc79 Fixed a bunch of compiler warnings 2013-04-05 21:34:04 +00:00
Richard Roberts 18f417581a Changed missed std::list to FastList iterator 2013-04-05 21:33:58 +00:00
Richard Roberts 67e36febf2 Added DLL export annotations on new code 2013-04-01 19:29:53 +00:00
Frank Dellaert 458707ed45 Small changes for Qualifier 2013 Scheduling 2013-03-19 18:05:13 +00:00
Richard Roberts d06edb8006 Added missing include 2013-03-18 19:45:37 +00:00
Richard Roberts ddc5ec434b Added missing 'typename' 2013-03-18 19:36:56 +00:00
Richard Roberts 467cd225af Added non-recursive version of BayesTreeCliqueBase::deleteCachedShortcutsNonRecursive 2013-03-18 19:28:01 +00:00
Richard Roberts 229e2d9195 Added BayesTree::removeSubtree 2013-03-18 19:27:59 +00:00
Richard Roberts d88ed78bb3 Made BayesTree::Cliques a FastList instead of an std::list 2013-03-18 19:27:56 +00:00
Richard Roberts 52410ac6f7 Whitespace 2013-03-18 19:27:55 +00:00
Richard Roberts d9ef381483 Fixed bug in FactorGraph::eliminate - was not unpermuting the removed factors - even though they're removed, since they're shared, they can be used still in other graphs 2013-03-18 19:27:53 +00:00
Richard Roberts 4278e2b9dc Including BayesTree.h instead of BayesTree-inl.h 2013-03-13 18:56:25 +00:00
Richard Roberts a54d177202 Added dll export tags and updated cmake scripts so that GTSAM can build as a shared library on windows 2013-03-13 18:56:21 +00:00
Richard Roberts 6111c099ab Improved build of shared vs static GTSAM libraries - now possible to build either one or both, executables link to the shared if it is being build, or otherwise to the static. Also removed separate shared/static CMake flags for gtsam_unstable, now uses the same GTSAM_BUILD_SHARED and GTSAM_BUILD_STATIC as gtsam. 2013-03-13 18:17:39 +00:00
Alex Cunningham 88496b33ab Fixed compile error due to missing typename 2013-03-05 15:11:43 +00:00
Richard Roberts a7e2a494ed Added consistency check on removing cliques - that they exist in their parent's children list. 2013-03-05 05:47:24 +00:00
Richard Roberts 812f441d79 Bug fix in BayesTree::removeClique - only frontal variables should be cleared from the nodes_ index. 2013-03-05 05:47:23 +00:00
Alex Cunningham eed9cf1e5c Fixed permutation function in BayesTree to properly update the nodes listing. Added assertion to removeClique() to fail under malformed bayes trees. 2013-02-18 18:26:36 +00:00
Richard Roberts dfe9a911f6 Fixed documentation in Permutation 2013-02-18 16:08:15 +00:00
Richard Roberts 97a6c3d94a Removed obsolete commented-out debug code 2013-02-05 21:52:48 +00:00
Richard Roberts f2a371e6c1 Cleaned up commented code from iSAM2 chain optimizations 2013-02-05 02:12:56 +00:00
Richard Roberts 9a23c2936a Merge remote-tracking branch 'refs/remotes/svn/trunk' into isam2-chain-optimization
Conflicts:
	gtsam/linear/VectorValues.h
2013-02-04 22:53:02 +00:00
Alex Cunningham 059a2c1b97 Added matlab interface to access cliques by index from BayesTree 2013-02-04 17:55:55 +00:00
Alex Cunningham d1246bfe98 Added empty() to BayesTree 2013-01-27 20:12:22 +00:00
Richard Roberts 49a2602428 Whitespace 2013-01-08 23:31:50 +00:00
Richard Roberts 6488eae412 Whitespace 2013-01-08 23:31:02 +00:00
Richard Roberts 4cb66dcdcc For speed, added partial permutation version of VectorValues::permuteInPlace and removed Permutation::partialPermutation (which generated a full-length permutation with only a few entries rearranged) 2012-12-18 14:21:58 +00:00
Richard Roberts b58fb71377 Some usage (still more to do) of sparse and partial permutations in iSAM2 partial reordering to improve asymptotic performance. 2012-12-18 14:21:28 +00:00
Richard Roberts bd285fbb52 Merge remote-tracking branch 'svn/trunk' into isam2-chain-optimization
Conflicts:
	gtsam/linear/HessianFactor.cpp
	gtsam/linear/VectorValues.cpp
2012-12-18 14:20:31 +00:00
Richard Roberts e43e1affd3 Removed TODOs 2012-12-03 19:08:14 +00:00
Richard Roberts f142758ec8 Fix to allow eliminating variable that doesn't exist using FactorGraph eliminate(One) 2012-11-26 19:21:09 +00:00
Richard Roberts a5ab9ca32d Made FactorGraph eliminate functions const 2012-11-26 19:21:00 +00:00
Richard Roberts 06f836c0a7 Using vector instead of deque in VariableIndex, BayesTree::Nodes, and GaussianISAM::Dims. In practice it appears to be faster due to smart reallocation strategies (still need to investigate whether we should use reserve, resize, or neither). 2012-11-23 23:22:46 +00:00
Yong-Dian Jian e5dc2b86b2 add timing statements for colamd 2012-11-16 22:59:57 +00:00
Richard Roberts 0c3761a2a9 Reverted r14178, r14179, r14195, r14196 (isam2 chain optimizations) to move them to a branch 2012-11-11 20:51:03 +00:00
Richard Roberts 4512e4c85d Some usage (still more to do) of sparse and partial permutations in iSAM2 partial reordering to improve asymptotic performance. 2012-11-03 21:10:58 +00:00
Richard Roberts caa031f733 Reducing variable indices in computing joint marginals 2012-10-31 22:27:33 +00:00
Richard Roberts b3ba46241c Missing typename 2012-10-28 06:37:57 +00:00
Richard Roberts 4d4e17c2a7 Joint marginals using lowest-common-ancestor shortcuts. As part of this commit, caching of shortcuts is removed, the BayesTreeCliqueBase::marginal function computing single-variable shortcut marginals is removed, and the factor/frontal size checks in symbolic and discrete elimination are modified to permit eliminating empty factors or zero frontal variables. 2012-10-28 06:21:21 +00:00
Richard Roberts 24111423d7 Made specific eliminate and eliminateOne methods for SymbolicFactorGraph and GaussianFactorGraph and made them accessible from MATLAB 2012-10-27 19:45:28 +00:00
Richard Roberts 920bb52453 Moved eliminate and eliminateOne from inference to FactorGraph 2012-10-22 17:49:41 +00:00
Alex Cunningham 76b88bd06e Added empty() to BayesNet 2012-10-09 18:21:06 +00:00
Alex Cunningham f8b96ad090 Added print() to Reduction 2012-10-09 17:48:38 +00:00
Alex Cunningham b05cd24a0b Pacified signed/unsigned warning 2012-10-09 15:46:57 +00:00
Richard Roberts 25870f5797 Disabled problematic joint marginal code in BayesTree for now 2012-10-09 13:12:33 +00:00
Richard Roberts 360f0e9d6b ifdef to make BayesTree joint marginals fall back on sequential solver joints to avoid duplicate information problem 2012-10-09 13:09:47 +00:00
Richard Roberts 90ca1d46f5 Removed obsolete code for avoiding partial elimination in BayesTreeCliqueBase::shortcut and GenericSequentialSolver::conditionalBayesNet 2012-10-09 00:18:22 +00:00
Richard Roberts df9a86d340 Fixed typo/spelling (hopefully for the last time) 2012-10-09 00:14:42 +00:00
Richard Roberts a06e8060ae Made new marginals with caching the default 2012-10-08 23:56:31 +00:00
Richard Roberts 2841b8665f Fixed comments and formatting 2012-10-08 23:34:17 +00:00
Richard Roberts e52b6efb68 Fixed typo/spelling 2012-10-08 23:27:39 +00:00
Richard Roberts 2719f7ca86 Fixed compile error on GCC 2012-10-08 23:15:16 +00:00
Richard Roberts 0f6516dc3d Using Reductions in all code paths for computing marginals, but not yet joint marginals. Also adds a lot of timing instrumentation in marginals code. 2012-10-08 22:40:51 +00:00
Richard Roberts 82f98fe1fb Added additional timing instrumentation in elimination data structures 2012-10-08 22:40:45 +00:00
Richard Roberts 550e683cad Fixed comment 2012-10-08 22:40:31 +00:00
Alex Cunningham 82593a2432 Added conversion functions from Fast* classes to stl containers. Added permuteWithInverse() to BayesTree 2012-10-08 20:30:59 +00:00
Alex Cunningham a004354c20 Added assertions to check for valid pointer values 2012-10-08 19:11:02 +00:00
Richard Roberts 89b50e7679 Renamed tic -> gttic and toc -> gttoc to avoid conflict with PCL tic/toc 2012-10-02 20:18:41 +00:00
Richard Roberts 4876cc7ff7 Revamped timing statements - much easier to use, exception-safe (see email to frankcvs list) 2012-10-02 18:36:39 +00:00
Chris Beall 4297d24c96 changed tabs to spaces for consistent indentation in all of GTSAM 2012-10-02 14:40:07 +00:00
Richard Roberts fb409a2cc7 Implemented partial elimination and sparse variable index remapping (Reduction) to enable Frank's new marginal code 2012-10-01 16:12:41 +00:00
Alex Cunningham df2a6bfdee Added reporting functions for counting number of cached shortcuts/separatorMarginals in BayesTree 2012-09-21 20:57:30 +00:00
Alex Cunningham 0e60b8cc4d Added access functions for cachedSeparatorMarginals 2012-09-21 20:02:26 +00:00
Frank Dellaert 7fcd06bb4f BayesTree::marginalFactor now calls Clique::marginal2, which in turn calles the new function Clique::separatorMarginal. This calculates marginals with a much simpler recursion, using the parent separator marginal. This could be faster than the shortcut way, especially if separator sizes are small and the root clique is large. The cached marginals have to be discarded when the bayes tree is updated, but this is no different from shortcuts to the root. 2012-09-17 14:03:54 +00:00
Frank Dellaert 1f0cc0aaa4 2-variable joint marginals computed with shortcuts are buggy: they only work if the cliques are disjoint or one of them is the root. They now throw an exception if that is the case. 2012-09-17 03:31:24 +00:00
Alex Cunningham 970efd9e29 Fixed missing include of boost.range, fixed signed/unsigned comparison warning 2012-09-17 01:26:08 +00:00
Frank Dellaert 75b96d9ed2 Removed old indices code 2012-09-17 00:50:15 +00:00
Frank Dellaert cdf45105c2 Fixed shortcuts after adding several more problematic testcases 2012-09-17 00:29:03 +00:00
Frank Dellaert 34a9000134 forceOrder flag respects order of constrained variables passed to conditionalBayesNet 2012-09-17 00:28:27 +00:00
Frank Dellaert bd8f9d0006 Went back to eliminate all in conditional because of singularities :-(, added use of forceOrder flag 2012-09-17 00:26:07 +00:00
Frank Dellaert db8264aaae forceOrder flag respects order of constrained variables passed to ccolamd 2012-09-17 00:24:49 +00:00