23 #ifndef O2SCL_MMIN_FIX_H
24 #define O2SCL_MMIN_FIX_H
32 #include <o2scl/mmin.h>
33 #include <o2scl/mmin_simp2.h>
35 #ifndef DOXYGEN_NO_O2NS
101 virtual int mmin(
size_t nvar, vec_t &x,
double &fmin,
104 if (
fixp.size()<nvar) {
106 for(
size_t i=0;i<nvar;i++)
fixp[i]=
false;
115 for(
size_t i=0;i<nvar;i++) {
123 for(
size_t i=0;i<nvar;i++) {
124 if (
fixp[i]==
false) {
138 O2SCL_ERR(
"Minimizer failed in mmin_fix_params::mmin_fix().",ret);
143 for(
size_t i=0;i<nvar;i++) {
144 if (
fixp[i]==
false) {
155 template<
class bool_vec_t>
void set_fix(
size_t n, bool_vec_t &fix) {
157 for(
size_t i=0;i<n;i++)
fixp[i]=fix[i];
170 template<
class bool_vec_t>
175 for(
size_t i=0;i<nvar;i++)
fixp[i]=fix[i];
177 return mmin(nvar,x,fmin,func);
196 for(
size_t i=0;i<
unv;i++) {
207 #ifndef DOXYGEN_INTERNAL
239 #ifndef DOXYGEN_NO_O2NS
int mmin_fix(size_t nvar, ubvector &x, double &fmin, bool_vec_t &fix, multi_funct11 &func)
Calculate the minimum of func while fixing some parameters as specified in fix.
virtual int mmin(size_t nvar, vec_t &x, double &fmin, func_t &func)
Calculate the minimum min of func w.r.t. the array x of size nvar.
mmin_base< mmin_fix_params< func_t, vec_t >, mmin_fix_params< func_t, vec_t >, vec_t > base_mmin_t
The generic minimizer type.
vec_t * xp
The user-specified initial vector.
size_t nv_new
The new number of variables.
virtual int mmin(size_t nvar, vec_t &x, double &fmin, func_t &func)=0
Calculate the minimum min of func w.r.t. the array x of size nvar.
virtual double operator()(size_t nv, const vec_t &x)
The new function to send to the minimizer.
func_t * funcp
The user-specified function.
int set_mmin(base_mmin_t &min)
Change the base minimizer.
Multidimensional minimization by the Simplex method (v2) (GSL)
int verbose
Output control.
mmin_fix_params()
Specify the member function pointer.
Multidimensional minimization [abstract base].
def_mmin_t def_mmin
The default base minimizer.
#define O2SCL_ERR(d, n)
Set an error with message d and code n.
base_mmin_t * mmp
The minimizer.
std::vector< bool > fixp
Specify which parameters to fix.
int last_ntrial
The number of iterations for in the most recent minimization.
size_t unv
The user-specified number of variables.
double tol_abs
The independent variable tolerance.
double tol_rel
Function value tolerance.
Multidimensional minimizer fixing some parameters and varying others.
std::function< double(size_t, const boost::numeric::ublas::vector< double > &)> multi_funct11
Multi-dimensional function typedef.
mmin_simp2< mmin_fix_params< func_t, vec_t >, vec_t > def_mmin_t
The default minimizer type.
int ntrial
Maximum number of iterations.