25 #ifndef PAGMO_ALGORITHM_GSL_DERIVATIVE_FREE_H
26 #define PAGMO_ALGORITHM_GSL_DERIVATIVE_FREE_H
29 #include <gsl/gsl_multimin.h>
30 #include <gsl/gsl_vector.h>
33 #include "../config.h"
34 #include "../population.h"
35 #include "../serialization.h"
38 namespace pagmo {
namespace algorithm {
51 std::string human_readable_extra()
const;
61 virtual const gsl_multimin_fminimizer_type *get_gsl_minimiser_ptr()
const = 0;
63 static void cleanup(gsl_vector *, gsl_vector *, gsl_multimin_fminimizer *);
64 static void check_allocs(gsl_vector *, gsl_vector *, gsl_multimin_fminimizer *);
66 friend class boost::serialization::access;
67 template <
class Archive>
68 void serialize(Archive &ar,
const unsigned int)
70 ar & boost::serialization::base_object<base_gsl>(*this);
71 ar &
const_cast<std::size_t &
>(m_max_iter);
72 ar &
const_cast<double &
>(m_tol);
73 ar &
const_cast<double &
>(m_step_size);
75 const std::size_t m_max_iter;
77 const double m_step_size;
Base class for GSL algorithms.
Wrapper for GSL minimisers without derivatives.