Commit Graph

67 Commits (aee494a24f967f652aae6783df95601cf7bab2c2)

Author SHA1 Message Date
Frank Dellaert 09573a36c9 Moved empty to Factor base class. 2021-12-31 16:16:56 -05:00
Varun Agrawal 6c3aca8cac remove virtual from overridden methods, add virtual destructors to appease compiler 2021-04-30 12:58:52 -04:00
Varun Agrawal 4d6eef2c2f override print methods and update wrapper 2021-04-29 19:43:27 -04:00
Fan Jiang 65036b2019 Devirtualize hessianDiagonal 2020-06-03 20:07:14 -04:00
Fan Jiang f73429133a Switched to in-place update of the diagonal Hessian 2020-06-02 12:44:57 -04:00
Duy-Nguyen Ta 1cdc228d6a remove trailing spaces 2019-02-11 10:58:34 -05:00
Frank Dellaert 2aa43e11bd Use KeyVector everywhere to avoid conversions 2018-11-08 10:10:32 -05:00
Frank Dellaert f6575323d6 Sidestep Scatter altogether and just use HessianFactor keys_. In theory, n^3 lookup cost, but in practice (as keys is contiguous memory) just as fast as map. 2015-06-13 12:06:13 -07:00
Frank Dellaert 41a0146b05 changed updateATA -> updateHessian. Much clearer 2015-06-12 00:20:37 -07:00
Frank Dellaert 39ffe3ac32 Made updateATA a virtual method for a small saving in CPU, but more importantly to allow for custom Jacobian or HessianFactors... 2015-06-10 15:53:43 -04:00
Thomas Schneider ebf5746987 Fix some serialization warnings. 2015-03-06 16:12:09 +01:00
Sungtae An e13243b140 Merge branch 'develop' into feature/RegularFactors
Conflicts:
	gtsam/linear/GaussianFactorGraph.cpp
	gtsam/linear/JacobianFactor.cpp
	gtsam/linear/JacobianFactor.h
	tests/testPreconditioner.cpp
2015-01-01 17:50:27 -05:00
dellaert e5017984a1 traits_x -> traits 2014-12-26 16:47:51 +01:00
dellaert 99a50a2f87 Split up concepts into Group/Manifold/Lie/VectorSpace. Also fixed some implementations and put in exceptions elsewhere, rather than CONCEPT_NOT_IMPLEMENTED macro. 2014-12-22 02:50:52 +01:00
dellaert 79d8514528 MASSIVE edit: made Testable its own concept, and moderinized Testable.h to use Testable traits. This required adding Testable traits in many classes. 2014-12-21 22:02:57 +01:00
krunalchande e539738fd0 Remove support for dual keys. Added finished() after all matrices and vectors. Remove buildDualGraph from GaussianFactorGraph. Remove support for multipliedHessians for non-linear equality constraints. 2014-12-12 17:23:31 -05:00
Sungtae An 960d10582d Add pure virtual function in GaussianFactor and empty dummy virtual function in Jacobian/Hessian Factor for the raw memory access functions 2014-11-17 16:17:11 -05:00
Sungtae An 51df17ffdf Remove virtual functions using raw memory access 2014-11-12 04:17:09 -05:00
thduynguyen 11969b32f6 fix gradient and gradientAtZero for linear constrained Jacobian, optionally scaled by the dual variables 2014-09-24 22:19:47 -04:00
thduynguyen 5e8c36b3ca compute gradient wrt a key 2014-09-13 01:31:49 -04:00
thduynguyen 6d697f2c92 heuristic in EliminationPreferCholesky to work around the Indeterminant exception while solving linear constrained systems.
Instead of turning Hessian factors into Jacobian factors -- so that they can be eliminated with constrained Jacobian factors using the special QR in Constrained's noise model -- we combine all Hessian factors, eliminate the variable first to have a conditional and a new factor 1, then combine the constrained Jacobians with this conditional (also a Jacobian) to eliminate again, producing the final conditional, and a new factor 2. The two new factors are then combined into a new Hessian factor to be returned.
2014-09-11 14:51:35 -04:00
Luca 37b750411f added gradientAtZero with raw memory access 2014-04-22 18:38:12 -04:00
Luca d2b6b12bba added raw memory access of hessianDiagonal 2014-03-17 19:28:49 -04:00
hchiu b464b808ef First cut on raw MultiplyHessianAdd for HessianFactor and JacobianFactor. Unit test is passed in testGaussianFactorGraphUnordered (multiplyHessianAdd3). Note the interface currently needs the accumulated diminsions of key variables. See GaussianFactorGraph::multiplyHessianAdd(double alpha,const double* x, double* y). 2014-03-04 01:58:34 -05:00
dellaert b837cb1b03 Declared hessianBlockDiagonal 2014-02-14 13:18:46 -05:00
dellaert 76959d4d18 Added hessianDiagonal; works for Gaussian factor graphs with JacobianFactors 2014-02-14 01:14:32 -05:00
Alex Cunningham 8e35490f22 Added virtual destructor to pacify a warning 2013-11-04 21:29:12 +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 6a383799d7 Skeleton code for GaussianFactorGraph::multiplyHessian 2013-10-24 15:52:32 +00:00
Richard Roberts 9a10242e96 Fixed warnings 2013-08-09 21:35:42 +00:00
Richard Roberts b3428881bd Fixed key formatting 2013-08-06 18:04:35 +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 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 eb21cf0911 Cleaned up information/augmentedInformation for GaussianFactor and GaussianConditional 2012-10-08 22:40:37 +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 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
Richard Roberts 947e5fe5ee Made typedefs / constants for IndexFormatter to simplify code 2012-06-28 01:52:48 +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 282dc6d788 comments and formatting 2012-06-21 15:46:39 +00:00
Richard Roberts b73af866d6 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-24 20:43:19 +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
Duy-Nguyen Ta e036dd460e support cloning (deep copy) for ISAM2 2011-12-06 16:21:57 +00:00
Richard Roberts e56b6ff392 Improving documentation 2011-09-05 18:37:43 +00:00
Alex Cunningham c4d9208eeb Added serialization for most linear/inference structures, simulated2D - serialization, except for example domains, should be complete 2011-06-04 16:52:54 +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 e4ed8cfd60 Made NonlinearFactor inherit from Factor<Symbol>, also hopefully fixed a compile error when implicitly up-casting from a derived factor type to its base type, which previously had some workaround(s) in Alex's code and in DiscreteFactor 2011-03-04 00:18:17 +00:00