Blender V4.3
libmv::Dogleg< Function, Jacobian, Solver > Class Template Reference

#include <dogleg.h>

Classes

struct  Results
 
struct  SolverParameters
 

Public Types

enum  Status {
  RUNNING , GRADIENT_TOO_SMALL , RELATIVE_STEP_SIZE_TOO_SMALL , TRUST_REGION_TOO_SMALL ,
  ERROR_TOO_SMALL , HIT_MAX_ITERATIONS
}
 
enum  Step { DOGLEG , GAUSS_NEWTON , STEEPEST_DESCENT }
 
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

 Dogleg (const Function &f)
 
Status Update (const Parameters &x, const SolverParameters &params, JMatrixType *J, AMatrixType *A, FVec *error, Parameters *g)
 
Step SolveDoglegDirection (const Parameters &dx_sd, const Parameters &dx_gn, Scalar radius, Scalar alpha, Parameters *dx_dl, Scalar *beta)
 
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::Dogleg< Function, Jacobian, Solver >

Definition at line 47 of file dogleg.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::Dogleg< Function, Jacobian, Solver >::AMatrixType

Definition at line 59 of file dogleg.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::Dogleg< Function, Jacobian, Solver >::FVec

Definition at line 50 of file dogleg.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::Dogleg< Function, Jacobian, Solver >::JMatrixType

Definition at line 55 of file dogleg.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::Dogleg< Function, Jacobian, Solver >::Parameters

Definition at line 51 of file dogleg.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::Dogleg< Function, Jacobian, Solver >::Scalar

Definition at line 49 of file dogleg.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::Dogleg::Status
Enumerator
RUNNING 
GRADIENT_TOO_SMALL 
RELATIVE_STEP_SIZE_TOO_SMALL 
TRUST_REGION_TOO_SMALL 
ERROR_TOO_SMALL 
HIT_MAX_ITERATIONS 

Definition at line 61 of file dogleg.h.

◆ Step

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
enum libmv::Dogleg::Step
Enumerator
DOGLEG 
GAUSS_NEWTON 
STEEPEST_DESCENT 

Definition at line 70 of file dogleg.h.

Constructor & Destructor Documentation

◆ Dogleg()

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

Definition at line 76 of file dogleg.h.

Member Function Documentation

◆ minimize() [1/2]

◆ 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::Dogleg< Function, Jacobian, Solver >::minimize ( Parameters * x_and_min)
inline

◆ SolveDoglegDirection()

template<typename Function , typename Jacobian = NumericJacobian<Function>, typename Solver = Eigen::PartialPivLU< Matrix<typename Function::FMatrixType::RealScalar, Function::XMatrixType::RowsAtCompileTime, Function::XMatrixType::RowsAtCompileTime>>>
Step libmv::Dogleg< Function, Jacobian, Solver >::SolveDoglegDirection ( const Parameters & dx_sd,
const Parameters & dx_gn,
Scalar radius,
Scalar alpha,
Parameters * dx_dl,
Scalar * beta )
inline

◆ 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::Dogleg< 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: