Feel++ 0.91.0
Public Types | Public Member Functions | Public Attributes
Feel::BFGSInvHessian< VECTOR > Struct Template Reference

#include <bfgs.hpp>

List of all members.

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)