#ifndef CONSTRAINED_DBETA #define CONSTRAINED_DBETA #include "projector.hpp" #include namespace opt_utilities { template class constrained_dbeta :public model,std::vector,std::vector > { public: constrained_dbeta() { this->push_param_info(param_info,std::string>("n01",1)); this->push_param_info(param_info,std::string>("beta1",.66)); this->push_param_info(param_info,std::string>("rc1",100)); this->push_param_info(param_info,std::string>("n02",1)); this->push_param_info(param_info,std::string>("beta2",.67)); this->push_param_info(param_info,std::string>("rc2",110)); } public: constrained_dbeta* do_clone()const { return new constrained_dbeta(*this); } std::vector do_eval(const std::vector & x, const std::vector& p) { T n01=std::abs(p[0]); T beta1=p[1]; T rc1=p[2]; T n02=std::abs(p[3]); T beta2=p[4]; T rc2=p[5]; std::vector result(x.size()-1); for(int i=1;i& p)const { if(p.size()!=6) { std::cerr<get_num_params()<rc1) { return true; } else { std::cerr<