Blender V5.0
libmv::Dogleg< Function, Jacobian, Solver > Class Template Reference

#include <dogleg.h>

Classes

struct  SolverParameters
struct  Results

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]

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

Definition at line 153 of file dogleg.h.

References minimize(), and params.

Referenced by minimize().

◆ 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

Definition at line 119 of file dogleg.h.

References b, beta(), DOGLEG, GAUSS_NEWTON, sqrt, and STEEPEST_DESCENT.

Referenced by minimize().

◆ 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

Definition at line 99 of file dogleg.h.

References A, error(), ERROR_TOO_SMALL, GRADIENT_TOO_SMALL, params, RUNNING, and x.

Referenced by minimize().


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