Commit Graph

140 Commits (fbe9aac41cbd39d83c27275a1c0bb12ce21db42b)

Author SHA1 Message Date
dellaert 19a06ca68f Added unit tests for NULL noise model and fixed bug in hessianDiagonalXX for that case 2014-02-16 00:21:15 -05:00
Luca 71e4015304 bug fix: before hessianDiagonal seg-faulted with no noise model 2014-02-15 16:44:20 -05:00
dellaert a2829fffad Working and tested implementation of hessianBlockDiagonal 2014-02-14 13:31:40 -05:00
dellaert 83918be8cd Put in empty bodies for hessianBlockDiagonal 2014-02-14 13:18:59 -05:00
dellaert 4ce7d47bce Fixed bug for non-unit noise models 2014-02-14 01:38:31 -05:00
dellaert 76959d4d18 Added hessianDiagonal; works for Gaussian factor graphs with JacobianFactors 2014-02-14 01:14:32 -05:00
Alex Cunningham 96a4d80da4 Fixed some warnings 2014-01-04 20:35:19 -05:00
Richard Roberts 2553e39746 Using an "Empty" constant in VariableSlots instead of calling numeric_limits::max() each time 2013-12-22 14:26:47 -05:00
Richard Roberts 09309e2869 Fixed debug and error message in JacobianFactor _countDims 2013-12-22 14:26:47 -05:00
Richard Roberts 411e934385 Fixed a bug in checking for empty-matrix Jacobians that still have keys (kind of a hack) 2013-11-05 16:06:14 +00:00
Richard Roberts 2dc40087d0 Fixed problem in ISAM2 marginalizeLeaves (with Luca, port from other repo) 2013-11-05 16:06:06 +00:00
Frank Dellaert 6c1f851d51 small change as alpha=1 2013-10-29 14:09:58 +00:00
Frank Dellaert daf5938577 const correctness 2013-10-29 04:58:51 +00:00
Frank Dellaert 4591835223 gradientAtZero is now implemented in the fcators (Richard says, need to work on efficiency) 2013-10-29 03:42:33 +00:00
Pablo Fernandez Alcantarilla 621483bc9b multiplyHessian in JacobianFactor works 2013-10-24 16:40:25 +00:00
Pablo Fernandez Alcantarilla 6a383799d7 Skeleton code for GaussianFactorGraph::multiplyHessian 2013-10-24 15:52:32 +00:00
Richard Roberts 95ac34aeeb Updating Hessian in-place instead of computing Hessian for each Jacobian 2013-10-03 16:50:16 +00:00
Richard Roberts bd89c5fd45 Using FastVector (with tbb allocator) instead of vector 2013-08-15 17:21:20 +00:00
Richard Roberts 3528173781 Fixed compile problem on linux using boost::join with boost::cref_list_of 2013-08-08 16:29:55 +00:00
Richard Roberts 2388f5df45 Revert "Fixing issues with boost::assign"
This reverts commit d820732adc34a6622aae5d2bc0eb4a88e133beaf.
2013-08-08 16:29:48 +00:00
Richard Roberts 6556fb5b1e Fixed a couple errors and warnings 2013-08-07 21:57:25 +00:00
Alex Cunningham 2b1a533477 Fixing issues with boost::assign 2013-08-07 13:29:35 +00:00
Richard Roberts 7aa1c61dcd Fixed problem is JacobianFactor combine with zero-row factors 2013-08-06 23:55:38 +00:00
Richard Roberts 375f7c16e6 Working on fixing ISAM 2013-08-06 19:56:48 +00:00
Richard Roberts 8ae920d85a Fixed matrix/noise model sizes in JacobianFactor::splitConditional after constrained QR 2013-08-06 17:36:03 +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
Richard Roberts 0e80fe6418 Moved ordering tests, fixed serialization and constructors, to make all inference, symbolic, and linear tests pass 2013-08-05 22:31:09 +00:00
Richard Roberts 1f6ca330ee Cleanups 2013-08-02 22:09:30 +00:00
Richard Roberts 0d05bf5ac5 Started on HessianFactor, converted Nonlinear stuff and disabled a lot of more advanced classes so the library compiles with nonlinear using unordered. 2013-08-01 21:57:43 +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 941cd93bf6 Returning empty noise model from QR and fix for backwards-compatibility in old code 2013-07-12 22:27:44 +00:00
Frank Dellaert 75751cc5fa Comments 2013-06-24 15:33:39 +00:00
Richard Roberts 547323cc79 Fixed a bunch of compiler warnings 2013-04-05 21:34:04 +00:00
Richard Roberts 1755136b1b Added JacobianFactor constructor from a GFG that merges the factors 2012-11-26 19:21:05 +00:00
Richard Roberts eb21cf0911 Cleaned up information/augmentedInformation for GaussianFactor and GaussianConditional 2012-10-08 22:40:37 +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
Frank Dellaert aeb43bc8fc Used technique described in http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html to turn off excessive warnings generated by boost lambda headers 2012-09-16 18:07:50 +00:00
Richard Roberts 6d1b86c2e0 Moved JacobianFactor type check/conversion functions into SubgraphSolver instead of GaussianFactorGraph and JacobianFactor 2012-09-06 14:33:44 +00:00
Yong-Dian Jian 4443752a18 clean the gfg to jfg conversion code 2012-09-05 17:04:48 +00:00
Richard Roberts 3e93c488e5 Removed extra code that was sometimes maintaining a staircase pattern in JacobianFactor by sorting rows - a holdover from the staircase optimization that is no longer done now that we are using Eigen's QR 2012-08-27 22:29:56 +00:00
Richard Roberts a5d7695fac Removed commented-out code 2012-08-22 22:40:31 +00:00
Richard Roberts dc884edceb No longer should permute JacobianFactor to sort keys when converting from HessianFactor 2012-08-22 22:40:30 +00:00
Richard Roberts 1dbda3f7ed Standardized and corrected error handling on the linear size - underconstrained and negative systems always throw IndeterminantLinearSystemException, and all assertions checking for infinite values are removed. Also, we were not properly checking the result of Eigen's Cholesky, so sometimes elimination continued with incorrect matrices despite being underconstrained when Cholesky failed but did not produce NaN's. 2012-08-22 22:40:27 +00:00
Alex Cunningham 9ee098b1c1 Added separate splitConditional() to remove the top part of a JacobianFactor after performing QR 2012-08-15 17:35:14 +00:00
Alex Cunningham b2e15eea4e Added negate() to GaussianFactor, which computes the Anti-factor eqiuvalent, using implementation from the nonlinear Anti-factor 2012-06-28 19:43:00 +00:00
Alex Cunningham c7734db4fa Added formatting objects to linear and inference objects to allow for printing meaningful keys 2012-06-25 21:19:38 +00:00
Alex Cunningham 9b473023e6 Fixed warnings 2012-06-23 18:12:15 +00:00
Frank Dellaert 617bf071cb Fixed warning by making "what" const. Please investigate warnings! 2012-06-22 21:44:29 +00:00
Richard Roberts 685d4d7da2 Added check and exception for incompatible noise model dimension in JacobianFactor 2012-06-22 15:24:57 +00:00
Richard Roberts d57fc32e74 To simplify FactorGraph, removed convertCastFactors and dynamicCastFactors from FactorGraph - replaced their calls with in-place code to do the needed conversions 2012-06-18 14:55:30 +00:00
Richard Roberts 97f52c5643 Cleaned up boost bind dependency 2012-06-07 16:12:55 +00:00
Yong-Dian Jian a9c36fc172 move linear algebra functions for jacobian factor graph to a new file 2012-06-07 01:24:19 +00:00
Richard Roberts 6e2312294c Added computeInformation function to GaussianFactor to properly compute information matrix including noise models, and using it to fix bug in Marginals where noise model was not being accounted for (only affects when hard constraints are used) 2012-05-23 20:56:22 +00:00
Richard Roberts 510e2eacac More progress in compiling on windows 2012-05-22 22:52:17 +00:00
Richard Roberts 1ce95c1d89 Removed LDL in favor of Cholesky 2012-05-15 15:49:14 +00:00
Richard Roberts 91e7dc5882 Caching linearized factors in iSAM2, improves speed when linearization is expensive
Merge remote-tracking branch 'svn/branches/iSAM2_cache_linearized' into trunk

Conflicts:
	.cproject
2012-04-11 14:17:59 +00:00
Richard Roberts 7243a9870b Using vector::assign instead of erase in JacobianFactor::eliminate, caused invalid iterator on some STL implementations 2012-04-09 13:21:16 +00:00
Richard Roberts 22ebe16a31 Merge remote-tracking branch 'svn/branches/incremental_dogleg_points_to_merge' into trunk
Conflicts:
	.cproject
	gtsam/linear/GaussianBayesTree-inl.h
	gtsam/linear/GaussianBayesTree.cpp
	gtsam/linear/GaussianBayesTree.h
	gtsam/nonlinear/DoglegOptimizerImpl.h
	gtsam/nonlinear/GaussianISAM2-inl.h
	gtsam/nonlinear/GaussianISAM2.cpp
	gtsam/nonlinear/GaussianISAM2.h
	gtsam/nonlinear/ISAM2-impl.cpp
	gtsam/nonlinear/ISAM2-inl.h
	gtsam/nonlinear/ISAM2.h
2012-03-23 04:31:54 +00:00
Richard Roberts d577655f1b Removed problematic 'inline' 2012-03-23 04:05:51 +00:00
Yong-Dian Jian 30557ce4a5 remove a small overhead 2012-03-15 17:23:01 +00:00
Richard Roberts 4137cfe9d7 Added missing copy constructor for GaussianConditional, and assignment operators for GaussianConditional, JacobianFactor, and HessianFactor that properly copy the block matrices (require calling a special function because they contain references) 2012-01-22 05:16:12 +00:00
Richard Roberts 099f170bf2 Better error message when trying to convert a negative HessianFactor to a JacobianFactor 2012-01-20 17:20:56 +00:00
Richard Roberts ffd01c7a7d Removed unneeded TODO's 2012-01-18 21:22:05 +00:00
Richard Roberts 4b95a2799b Bug fix in converting HessianFactor to JacobianFactor - had to zero out lower triangle of eliminated matrix. Additional unit tests to catch this. 2012-01-18 20:44:27 +00:00
Alex Cunningham 927217ba4b Cleanup from FactorGraph-inl.h 2011-12-21 16:59:37 +00:00
Richard Roberts 6e1136ba20 (in branch) Separate gradient functions for FactorGraph, BayesNet, BayesTree, and BayesTree with ISAM2 Cliques (specialized for using stored gradient contributions in ISAM2 cliques) 2011-12-13 22:51:28 +00:00
Frank Dellaert 58d83f704f Documentation and headers 2011-10-29 04:00:14 +00:00
Richard Roberts 2c53df3ee7 Simplified VectorValues interface and implementation, slight simplification to Permuted<> 2011-10-26 02:04:06 +00:00
Frank Dellaert fabde56642 Doxygen 2011-10-22 19:56:26 +00:00
Richard Roberts 63ca74e492 Fixed bug in multifrontal marginals caused by backwards permutations with LDL (seems to be an inconsistency in Eigen?). Added GaussianConditional constructor from any number of frontal and parent variables. Added several new unit tests on marginals. Fixed small bug in GaussianConditional non-const get_d_ and get_R_ functions that didn't account for multiple frontal variables. 2011-09-23 02:50:46 +00:00
Alex Cunningham 3c7836cf4d comments only 2011-06-13 20:40:44 +00:00
Alex Cunningham fa4faa274a Merge branch 'prep_0.9.3' 2011-06-13 16:55:31 +00:00
Richard Roberts 5ea18829b5 Fixed code comments to indicate that assertInvariants does not check for sorted keys 2011-06-04 12:54:43 +00:00
Alex Cunningham 79c09708e8 Assorted cleanup to remove ublas references, switch more Vector/Matrix utility functions to use Eigen in templates, reimplemented backsubstitution with Eigen 2011-06-02 20:35:02 +00:00
Alex Cunningham 2e942f08ac Removed some extraneous comments from eigen transition 2011-05-20 18:43:37 +00:00
Alex Cunningham e20561be73 Merge branch 'eigen' 2011-05-20 13:52:08 +00:00
Frank Dellaert e635b21154 made keys_ and nrFrontals_ private to ensure correct constructors are called 2011-03-25 16:57:28 +00:00
Frank Dellaert 5c193422af Major change, elimination functions are now passed an "Eliminate function", so you can select at run-time which factorization method is used (symbolic, QR, etc...). 2011-03-24 19:27:12 +00:00
Richard Roberts 85ed6c306d Renamed typedef name Conditional to ConditionalType 2011-03-01 17:16:43 +00:00
Richard Roberts 62b3db9535 Documentation for FactorBase, ConditionalBase, IndexFactor, IndexConditional 2011-02-15 16:22:35 +00:00
Richard Roberts 12664813d4 Avoiding extra work of converting from JacobianFactor to HessianFactor, instead updating HessianFactor directly 2011-02-07 22:30:31 +00:00
Richard Roberts 0339a33de0 Using Eigen to combine HessianFactors 2011-02-07 02:49:58 +00:00
Richard Roberts bdbc09ba42 Added GaussianFactorGraph::sparseJacobian function to create a sparse Jacobian matrix suitable for Matlab 2011-02-04 03:56:47 +00:00
Richard Roberts 689adead55 Using granular debugging flags, fixed code comment 2011-02-04 02:36:14 +00:00
Richard Roberts 24fbe9b02b Correct conversion from unsorted HessianFactor (to sorted JacobianFactor) - will soon re-standardize sorting. Also checking for non-finite values in assertInvariants 2011-02-04 01:01:29 +00:00
Richard Roberts 4880257e69 Merging hessianfactor branch, Cholesky is now default and GaussianFactor is virtual (see email to frankcvs) 2011-01-20 22:22:00 +00:00
Richard Roberts a8a584d38e Rolling back last commit (undoing merge of hessianfactor branch) - does not compile on Linux, could be compiler or boost version problems. Also will probably break Alex's stuff so will work that out before merging. 2010-12-17 01:11:28 +00:00
Richard Roberts de1892016d Merged in hessianfactor branch, Cholesky is now default. This merge also includes improved timing statements with automatic outlining and low overhead 2010-12-17 00:51:51 +00:00