13#ifndef OPTIMIST_ROOTFINDER_GREENSTADT_HH
14#define OPTIMIST_ROOTFINDER_GREENSTADT_HH
40 template <
typename Real, Integer N>
72 std::ostringstream os;
76 }
else if (this->
m_method == Method::TWO) {
122 Vector const & delta_x_new,
Vector const & delta_function_new,
Vector const & function_new,
125 if (this->
m_method == Method::ONE) {
128 jacobian_new = jacobian_old - (jacobian_old*delta_function_new-delta_x_new)/(function_new.transpose()*delta_function_new)*function_new.transpose();
129 }
else if (this->
m_method == Method::TWO) {
132 Vector C(jacobian_old.transpose()*jacobian_old*delta_function_new);
133 jacobian_new = jacobian_old - (jacobian_old*delta_function_new-delta_x_new)/(C.transpose()*delta_function_new)*C.transpose();
#define OPTIMIST_BASIC_CONSTANTS(Real)
Definition Optimist.hh:70
typename QuasiNewton< Real, N, Greenstadt< Real, N > >::Matrix Matrix
Definition Greenstadt.hh:52
void enable_two_method()
Definition Greenstadt.hh:102
typename QuasiNewton< Real, N, Greenstadt< Real, N > >::Vector Vector
Definition Greenstadt.hh:51
void method(Method t_method)
Definition Greenstadt.hh:92
Method method() const
Definition Greenstadt.hh:86
enum class Method :Integer {ONE=1, TWO=2} Method
Definition Greenstadt.hh:50
typename QuasiNewton< Real, N, Greenstadt< Real, N > >::JacobianWrapper JacobianWrapper
Definition Greenstadt.hh:54
typename QuasiNewton< Real, N, Greenstadt< Real, N > >::FunctionWrapper FunctionWrapper
Definition Greenstadt.hh:53
std::string name_impl() const
Definition Greenstadt.hh:70
void set_method(Method t_method)
Definition Greenstadt.hh:108
static constexpr bool requires_function
Definition Greenstadt.hh:44
static constexpr bool requires_first_derivative
Definition Greenstadt.hh:45
void enable_one_method()
Definition Greenstadt.hh:97
void update_impl(Vector const &, Vector const &, Matrix const &jacobian_old, Vector const &delta_x_new, Vector const &delta_function_new, Vector const &function_new, Matrix &jacobian_new)
Definition Greenstadt.hh:120
Greenstadt()
Definition Greenstadt.hh:64
static constexpr bool requires_second_derivative
Definition Greenstadt.hh:46
Method m_method
Definition Greenstadt.hh:58
QuasiNewton()
Definition QuasiNewton.hh:64
bool solve(FunctionWrapper function, Vector const &x_ini, Vector &x_sol)
Definition RootFinder.hh:164
Namespace for the Optimist library.
Definition Optimist.hh:87
OPTIMIST_DEFAULT_INTEGER_TYPE Integer
The Integer type as used for the API.
Definition Optimist.hh:95