make Jacobian/Hessian cast functions static to use them in other places. TODO: move them to GaussianFactor

release/4.3a0
thduynguyen 2014-04-18 12:21:34 -04:00
parent 416111b0ef
commit b8a2223572
1 changed files with 5 additions and 3 deletions

View File

@ -136,20 +136,22 @@ public:
/** Optimize */ /** Optimize */
VectorValues optimize(const VectorValues& initials) const; VectorValues optimize(const VectorValues& initials) const;
private:
/// Convert a Gaussian factor to a jacobian. return empty shared ptr if failed /// Convert a Gaussian factor to a jacobian. return empty shared ptr if failed
JacobianFactor::shared_ptr toJacobian(const GaussianFactor::shared_ptr& factor) const { /// TODO: Move to GaussianFactor?
static JacobianFactor::shared_ptr toJacobian(const GaussianFactor::shared_ptr& factor) {
JacobianFactor::shared_ptr jacobian( JacobianFactor::shared_ptr jacobian(
boost::dynamic_pointer_cast<JacobianFactor>(factor)); boost::dynamic_pointer_cast<JacobianFactor>(factor));
return jacobian; return jacobian;
} }
/// Convert a Gaussian factor to a Hessian. Return empty shared ptr if failed /// Convert a Gaussian factor to a Hessian. Return empty shared ptr if failed
HessianFactor::shared_ptr toHessian(const GaussianFactor::shared_ptr factor) const { /// TODO: Move to GaussianFactor?
static HessianFactor::shared_ptr toHessian(const GaussianFactor::shared_ptr factor) {
HessianFactor::shared_ptr hessian(boost::dynamic_pointer_cast<HessianFactor>(factor)); HessianFactor::shared_ptr hessian(boost::dynamic_pointer_cast<HessianFactor>(factor));
return hessian; return hessian;
} }
private:
/// Collect all free Hessians involving constrained variables into a graph /// Collect all free Hessians involving constrained variables into a graph
GaussianFactorGraph::shared_ptr unconstrainedHessiansOfConstrainedVars( GaussianFactorGraph::shared_ptr unconstrainedHessiansOfConstrainedVars(
const GaussianFactorGraph& graph, const KeySet& constrainedVars) const; const GaussianFactorGraph& graph, const KeySet& constrainedVars) const;