Commit 5a31f6b4 authored by Vadim Pisarevsky's avatar Vadim Pisarevsky

ok, so probably the failure in downhill simplex has been finally solved

parent 2ec92ba4
This diff is collapsed.
...@@ -58,7 +58,7 @@ static void mytest(cv::Ptr<cv::ConjGradSolver> solver,cv::Ptr<cv::MinProblemSolv ...@@ -58,7 +58,7 @@ static void mytest(cv::Ptr<cv::ConjGradSolver> solver,cv::Ptr<cv::MinProblemSolv
std::cout<<"--------------------------\n"; std::cout<<"--------------------------\n";
} }
class SphereF:public cv::MinProblemSolver::Function{ class SphereF_CG:public cv::MinProblemSolver::Function{
public: public:
double calc(const double* x)const{ double calc(const double* x)const{
return x[0]*x[0]+x[1]*x[1]+x[2]*x[2]+x[3]*x[3]; return x[0]*x[0]+x[1]*x[1]+x[2]*x[2]+x[3]*x[3];
...@@ -69,7 +69,7 @@ public: ...@@ -69,7 +69,7 @@ public:
} }
} }
}; };
class RosenbrockF:public cv::MinProblemSolver::Function{ class RosenbrockF_CG:public cv::MinProblemSolver::Function{
double calc(const double* x)const{ double calc(const double* x)const{
return 100*(x[1]-x[0]*x[0])*(x[1]-x[0]*x[0])+(1-x[0])*(1-x[0]); return 100*(x[1]-x[0]*x[0])*(x[1]-x[0]*x[0])+(1-x[0])*(1-x[0]);
} }
...@@ -83,7 +83,7 @@ TEST(DISABLED_Core_ConjGradSolver, regression_basic){ ...@@ -83,7 +83,7 @@ TEST(DISABLED_Core_ConjGradSolver, regression_basic){
cv::Ptr<cv::ConjGradSolver> solver=cv::ConjGradSolver::create(); cv::Ptr<cv::ConjGradSolver> solver=cv::ConjGradSolver::create();
#if 1 #if 1
{ {
cv::Ptr<cv::MinProblemSolver::Function> ptr_F(new SphereF()); cv::Ptr<cv::MinProblemSolver::Function> ptr_F(new SphereF_CG());
cv::Mat x=(cv::Mat_<double>(4,1)<<50.0,10.0,1.0,-10.0), cv::Mat x=(cv::Mat_<double>(4,1)<<50.0,10.0,1.0,-10.0),
etalon_x=(cv::Mat_<double>(1,4)<<0.0,0.0,0.0,0.0); etalon_x=(cv::Mat_<double>(1,4)<<0.0,0.0,0.0,0.0);
double etalon_res=0.0; double etalon_res=0.0;
...@@ -92,7 +92,7 @@ TEST(DISABLED_Core_ConjGradSolver, regression_basic){ ...@@ -92,7 +92,7 @@ TEST(DISABLED_Core_ConjGradSolver, regression_basic){
#endif #endif
#if 1 #if 1
{ {
cv::Ptr<cv::MinProblemSolver::Function> ptr_F(new RosenbrockF()); cv::Ptr<cv::MinProblemSolver::Function> ptr_F(new RosenbrockF_CG());
cv::Mat x=(cv::Mat_<double>(2,1)<<0.0,0.0), cv::Mat x=(cv::Mat_<double>(2,1)<<0.0,0.0),
etalon_x=(cv::Mat_<double>(2,1)<<1.0,1.0); etalon_x=(cv::Mat_<double>(2,1)<<1.0,1.0);
double etalon_res=0.0; double etalon_res=0.0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment