23 #ifndef O2SCL_ANNEAL_H
24 #define O2SCL_ANNEAL_H
32 #include <boost/config.hpp>
33 #include <boost/numeric/ublas/vector.hpp>
34 #include <boost/numeric/ublas/matrix.hpp>
36 #include <o2scl/multi_funct.h>
37 #include <o2scl/mmin.h>
38 #include <o2scl/rng_gsl.h>
40 #ifndef DOXYGEN_NO_O2NS
63 class rng_t=int,
class rng_dist_t=
rng_gsl >
66 #ifdef O2SCL_NEVER_DEFINED
77 virtual ~anneal_base() {}
82 virtual int mmin(
size_t nvar, vec_t &x,
double &fmin,
94 virtual int print_iter(
size_t nv, vec_t &x,
double y,
int iter,
95 double tptr, std::string comment)
97 if (this->verbose<=0)
return 0;
102 (*this->outs) << comment <<
" Iteration: " << iter << std::endl;
104 for(i=0;i<nv;i++) std::cout << x[i] <<
" ";
105 std::cout << std::endl;
106 (*this->outs) <<
"y: " << y <<
" Tptr: " << tptr << std::endl;
107 if (this->verbose>1) {
108 (*this->outs) <<
"Press a key and type enter to continue. ";
122 virtual const char *
type() {
return "anneal_base"; }
131 this->rng_dist=ab.rng_dist;
143 this->rng_dist=ab.rng_dist;
150 #ifndef DOXYGEN_NO_O2NS
mmin_base< func_t, dfunc_t, vec_t > & operator=(const mmin_base< func_t, dfunc_t, vec_t > &mb)
Copy constructor from operator=.
virtual const char * type()
Return string denoting type, "anneal_base".
rng_dist_t rng_dist
The default random number distribution.
Multidimensional minimization [abstract base].
Simulated annealing base.
rng_t rng
The default random number generator.
Random number generator (GSL)
std::function< double(size_t, const boost::numeric::ublas::vector< double > &)> multi_funct11
Multi-dimensional function typedef.
virtual int print_iter(size_t nv, vec_t &x, double y, int iter, double tptr, std::string comment)
Print out iteration information.