flexiblesusy is hosted by Hepforge, IPPP Durham
FlexibleSUSY
gsl_multimin_fminimizer.hpp
Go to the documentation of this file.
1// ====================================================================
2// This file is part of FlexibleSUSY.
3//
4// FlexibleSUSY is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published
6// by the Free Software Foundation, either version 3 of the License,
7// or (at your option) any later version.
8//
9// FlexibleSUSY is distributed in the hope that it will be useful, but
10// WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with FlexibleSUSY. If not, see
16// <http://www.gnu.org/licenses/>.
17// ====================================================================
18
19#ifndef GSL_MULTIMIN_FMINIMIZER_H
20#define GSL_MULTIMIN_FMINIMIZER_H
21
22#include "gsl_vector.hpp"
23#include <gsl/gsl_multimin.h>
24
25namespace flexiblesusy {
26
31{
32public:
33 GSL_multimin_fminimizer(const gsl_multimin_fminimizer_type* type, std::size_t dim,
34 gsl_multimin_function* f, const GSL_vector& start,
35 const GSL_vector& step_size);
38 ~GSL_multimin_fminimizer() noexcept;
41
43 double get_minimum_value() const;
44 int iterate();
45 void print_state(std::size_t iteration) const;
46 int test_residual(double precision) const noexcept;
47
48private:
49 gsl_multimin_fminimizer* solver = nullptr;
50};
51
52} // namespace flexiblesusy
53
54#endif
GSL_multimin_fminimizer(const GSL_multimin_fminimizer &)=delete
int test_residual(double precision) const noexcept
GSL_multimin_fminimizer(const gsl_multimin_fminimizer_type *type, std::size_t dim, gsl_multimin_function *f, const GSL_vector &start, const GSL_vector &step_size)
void print_state(std::size_t iteration) const
GSL_multimin_fminimizer(GSL_multimin_fminimizer &&)=delete
std::complex< double > f(double tau) noexcept