diff options
Diffstat (limited to 'methods/linmin/linmin.hpp')
-rw-r--r-- | methods/linmin/linmin.hpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/methods/linmin/linmin.hpp b/methods/linmin/linmin.hpp index fe5e58c..b542fba 100644 --- a/methods/linmin/linmin.hpp +++ b/methods/linmin/linmin.hpp @@ -26,19 +26,19 @@ namespace opt_utilities func_adaptor(const func_adaptor&) :func_obj<rT,rT>(),p1(),xi1(),pfoo(NULL_PTR) {} - + public: /* void set_origin(pT& p2) { p1=p2; } - + void set_direction(pT& xi2) { xi1=xi2; } - + void set_func_obj(func_obj<rT,pT>& foo) { pfoo=&foo; @@ -47,20 +47,22 @@ namespace opt_utilities func_adaptor(const pT& _p,const pT& _xi,const func_obj<rT,pT>& pf) :p1(_p),xi1(_xi),pfoo(&pf) {} - + private: func_obj<rT,rT>* do_clone()const { return new func_adaptor(*this); } - + rT do_eval(const rT& x) { //assert(p1.size()==xi1.size()); - + pT xt; opt_eq(xt,p1); -#pragma omp parallel for +#ifdef _OPENMP +#pragma omp parallel for +#endif for(size_t i=0;i<get_size(xt);++i) { //get_element(xt,i)+=x*get_element((pT)xi1,i); @@ -72,7 +74,7 @@ namespace opt_utilities //return x; } }; - + template<typename rT,typename pT> void linmin(pT& p,pT& xi,rT& fret,func_obj<rT,pT>& func) @@ -90,13 +92,15 @@ namespace opt_utilities ax=0.; xx=1.; - + mnbrak(ax,xx,bx,fa,fx,fb,fadpt); //cout<<xx<<endl; fret=brent(ax,xx,bx,fadpt,TOL,xmin); //cout<<xmin<<endl; -#pragma omp parallel for +#ifdef _OPENMP +#pragma omp parallel for +#endif for(j=0;j<n;++j) { //get_element(xi,j)*=xmin; |