Blender  V3.3
Classes | Public Types | Public Member Functions | List of all members
libmv::LevenbergMarquardt< Function, Jacobian, Solver > Class Template Reference

#include <levenberg_marquardt.h>

Classes

struct  Results
 
struct  SolverParameters
 

Public Types

enum  Status {
  RUNNING , GRADIENT_TOO_SMALL , RELATIVE_STEP_SIZE_TOO_SMALL , ERROR_TOO_SMALL ,
  HIT_MAX_ITERATIONS
}
 
typedef Function::XMatrixType::RealScalar Scalar
 
typedef Function::FMatrixType FVec
 
typedef Function::XMatrixType Parameters
 
typedef Matrix< typename Function::FMatrixType::RealScalar, Function::FMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime > JMatrixType
 
typedef Matrix< typename JMatrixType::RealScalar, JMatrixType::ColsAtCompileTime, JMatrixType::ColsAtCompileTime > AMatrixType
 

Public Member Functions

 LevenbergMarquardt (const Function &f)
 
Status Update (const Parameters &x, const SolverParameters &params, JMatrixType *J, AMatrixType *A, FVec *error, Parameters *g)
 
Results minimize (Parameters *x_and_min)
 
Results minimize (const SolverParameters &params, Parameters *x_and_min)
 

Detailed Description

template<typename Function, typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
class libmv::LevenbergMarquardt< Function, Jacobian, Solver >

Definition at line 46 of file levenberg_marquardt.h.

Member Typedef Documentation

◆ AMatrixType

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
typedef Matrix<typename JMatrixType::RealScalar, JMatrixType::ColsAtCompileTime, JMatrixType::ColsAtCompileTime> libmv::LevenbergMarquardt< Function, Jacobian, Solver >::AMatrixType

Definition at line 58 of file levenberg_marquardt.h.

◆ FVec

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
typedef Function::FMatrixType libmv::LevenbergMarquardt< Function, Jacobian, Solver >::FVec

Definition at line 49 of file levenberg_marquardt.h.

◆ JMatrixType

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
typedef Matrix<typename Function::FMatrixType::RealScalar, Function::FMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime> libmv::LevenbergMarquardt< Function, Jacobian, Solver >::JMatrixType

Definition at line 54 of file levenberg_marquardt.h.

◆ Parameters

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
typedef Function::XMatrixType libmv::LevenbergMarquardt< Function, Jacobian, Solver >::Parameters

Definition at line 50 of file levenberg_marquardt.h.

◆ Scalar

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
typedef Function::XMatrixType::RealScalar libmv::LevenbergMarquardt< Function, Jacobian, Solver >::Scalar

Definition at line 48 of file levenberg_marquardt.h.

Member Enumeration Documentation

◆ Status

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
enum libmv::LevenbergMarquardt::Status
Enumerator
RUNNING 
GRADIENT_TOO_SMALL 
RELATIVE_STEP_SIZE_TOO_SMALL 
ERROR_TOO_SMALL 
HIT_MAX_ITERATIONS 

Definition at line 62 of file levenberg_marquardt.h.

Constructor & Destructor Documentation

◆ LevenbergMarquardt()

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
libmv::LevenbergMarquardt< Function, Jacobian, Solver >::LevenbergMarquardt ( const Function &  f)
inline

Definition at line 70 of file levenberg_marquardt.h.

Member Function Documentation

◆ minimize() [1/2]

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
Results libmv::LevenbergMarquardt< Function, Jacobian, Solver >::minimize ( const SolverParameters params,
Parameters x_and_min 
)
inline

◆ minimize() [2/2]

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
Results libmv::LevenbergMarquardt< Function, Jacobian, Solver >::minimize ( Parameters x_and_min)
inline

Definition at line 111 of file levenberg_marquardt.h.

References params.

◆ Update()

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
Status libmv::LevenbergMarquardt< Function, Jacobian, Solver >::Update ( const Parameters x,
const SolverParameters params,
JMatrixType J,
AMatrixType A,
FVec error,
Parameters g 
)
inline

The documentation for this class was generated from the following file: