diff options
author | Aaron LI <aaronly.me@outlook.com> | 2017-02-07 13:17:45 +0800 |
---|---|---|
committer | Aaron LI <aaronly.me@outlook.com> | 2017-02-07 13:17:45 +0800 |
commit | e5d8fe50719f61138a21a568da9b06532a42dd5b (patch) | |
tree | 8715f83b8ca8d599db66c2ca5d1f4a91e3d584f4 /methods/linmin/linmin.hpp | |
parent | 07a92b6abede8ba98bf7edcf5aa18dedc61db999 (diff) | |
download | opt-utilities-e5d8fe50719f61138a21a568da9b06532a42dd5b.tar.bz2 |
Handle #pragma omp warning when not give -fopenmp
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; |