53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
/* ----------------------------------------------------------------------------
 | 
						|
 | 
						|
 * GTSAM Copyright 2010, Georgia Tech Research Corporation,
 | 
						|
 * Atlanta, Georgia 30332-0415
 | 
						|
 * All Rights Reserved
 | 
						|
 * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
 | 
						|
 | 
						|
 * See LICENSE for the license information
 | 
						|
 | 
						|
 * -------------------------------------------------------------------------- */
 | 
						|
 | 
						|
/*
 | 
						|
 * NonlinearOptimization.h
 | 
						|
 *
 | 
						|
 *   Created on: Oct 14, 2010
 | 
						|
 *       Author: Kai Ni
 | 
						|
 *  Description: Easy interfaces for NonlinearOptimizer
 | 
						|
 */
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <gtsam/nonlinear/NonlinearOptimizationParameters.h>
 | 
						|
 | 
						|
namespace gtsam {
 | 
						|
 | 
						|
	/**
 | 
						|
	 * all the nonlinear optimization methods
 | 
						|
	 */
 | 
						|
	enum NonlinearOptimizationMethod {
 | 
						|
		LM,            // Levenberg Marquardt
 | 
						|
		GN             // Gaussian-Newton
 | 
						|
	};
 | 
						|
 | 
						|
	/**
 | 
						|
	 * all the linear solver types
 | 
						|
	 */
 | 
						|
	enum LinearSolver{
 | 
						|
		ELIMINATION,      // Elimination
 | 
						|
		MULTIFRONTAL,      // Multi-frontal
 | 
						|
		SPCG,			  // Subgraph Preconditioned Conjugate Gradient
 | 
						|
	};
 | 
						|
 | 
						|
 | 
						|
	/**
 | 
						|
	 * optimization that returns the values
 | 
						|
	 */
 | 
						|
	template<class G, class T>
 | 
						|
	T optimize(const G& graph, const T& initialEstimate, const NonlinearOptimizationParameters& parameters = NonlinearOptimizationParameters(),
 | 
						|
			const enum LinearSolver& solver = ELIMINATION);
 | 
						|
 | 
						|
}
 | 
						|
 |