Blender  V3.3
Classes | Public Types | Public Member Functions | List of all members
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]

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 params.

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