Feel++  0.91.4
Public Types | Public Member Functions | Public Attributes | List of all members
Feel::BFGSInvHessian< VECTOR > Struct Template Reference

#include <bfgs.hpp>

Public Types

typedef VECTOR vector_type
 
typedef vector_type::value_type T
 
typedef vector_type::value_type value_type
 
typedef value_type magnitude_type
 

Public Member Functions

 BFGSInvHessian (BFGSType v=BFGS)
 
template<typename VEC1 , typename VEC2 >
void hmult (const VEC1 &X, VEC2 &Y)
 
void restart (void)
 
template<typename VECT1 , typename VECT2 >
void update (const VECT1 &deltak, const VECT2 &gammak)
 

Public Attributes

std::vector< vector_type > delta
 
std::vector< vector_type > gamma
 
std::vector< vector_type > zeta
 
std::vector< T > tau
 
std::vector< T > rho
 
int version
 

Detailed Description

template<typename VECTOR>
struct Feel::BFGSInvHessian< VECTOR >

delta[k] = x[k+1] - x[k] gamma[k] = grad f(x[k+1]) - grad f(x[k]) H[0] = I BFGS : zeta[k] = delta[k] - H[k] gamma[k] DFP : zeta[k] = H[k] gamma[k] tau[k] = gamma[k]^T zeta[k] rho[k] = 1 / gamma[k]^T delta[k] BFGS : H[k+1] = H[k] + rho[k](zeta[k] delta[k]^T + delta[k] zeta[k]^T)