#include "op.hh" #include "rnop.hh" #include "ls.hh" #include "functions.hh" #include "LBFGSBT.hh" #include "rnspace.hh" #include "expls.hh" using namespace RVL; using namespace RVLAlg; using namespace RVLUmin; int main(int argc, char ** argv) { try { cout<::epsilon()); par.putValue("LS_FractionOfMaxStep",0.9); par.putValue("MinDecrease",0.01); par.putValue("GoodDecrease",0.8); par.putValue("StepDecrFactor",0.5); par.putValue("StepIncrFactor",1.8); par.putValue("BFGS_InvHessianScale",1.0); par.putValue("BFGS_MaxUpdates",5); cout< sp(dim); Vector x(sp); Vector y(sp); cout<<"assign const to ref\n"; RVLAssignConst ac(1.0); x.eval(ac); cout<<"create GenOp\n"; GenOp, diagquartjac > f(sp,sp); // in separate scope so that OpEval is destroyed { cout<<" evaluate at initial data\n"; OperatorEvaluation feval(f,x); cout<<" copy output to y = RHS"< j(f,y); cout<<"zero solution vector for initial guess"< umin(j,x,par,str); LBFGSBT umin(j,x,par,str); cout << "\n before run x.norm() = " << x.norm() << endl; cout<<"run optimization"< sp(dim); Vector x(sp); Vector y(sp); cout<<"assign const to ref\n"; RVLAssignConst ac(1.0); x.eval(ac); cout<<"create GenOp\n"; GenOp, diagquartjac > f(sp,sp); // in separate scope so that OpEval is destroyed { cout<<" evaluate at initial data\n"; OperatorEvaluation feval(f,x); cout<<" copy output to y = RHS"< j(f,y); cout<<"zero solution vector for initial guess"< umin(j,x,par,str); cout<<"run optimization"< sp(dim); Vector x(sp); Vector y(sp); cout<<"assign const to ref\n"; RVLAssignConst ac(1.0); x.eval(ac); cout<<"create GenOp\n"; GenOp, diagquartjac > f(sp,sp); // in separate scope so that OpEval is destroyed { cout<<" evaluate at initial data\n"; OperatorEvaluation feval(f,x); cout<<" copy output to y = RHS"< j(f,y); cout<<"zero solution vector for initial guess"< umin(j,x,par,str); LBFGSBT umin(j,x,par,str); cout<<"run optimization"<::epsilon()); { int dim=10; RnSpace sp(dim); Vector x(sp); Vector y(sp); cout<<"assign const to ref\n"; RVLAssignConst ac(1.0); x.eval(ac); cout<<"create GenOp\n"; GenOp, diagquartjac > f(sp,sp); // in separate scope so that OpEval is destroyed { cout<<" evaluate at initial data\n"; OperatorEvaluation feval(f,x); cout<<" copy output to y = RHS"< j(f,y); cout<<"zero solution vector for initial guess"< umin(j,x,par,str); LBFGSBT umin(j,x,par,str); cout<<"run optimization"< sp(dim); LocalVector x(sp); cout<<"assign initial vector per TOMS"<, rosiejac > f(sp,sp); cout<<"create least squares function"< j(f); cout<<"create LBFGSBT (optimization algorithm object)"< umin(j,x,par,str); cout<<"run optimization"< sp(dim); LocalVector x(sp); cout<<"assign initial vector per TOMS"<, rosiejac > f(sp,sp); cout<<"create least squares function"< j(f); cout<<"create LBFGSBT (optimization algorithm object)"< umin(j,x,par,str); cout<<"run optimization"< sp(dim); LocalVector x(sp); cout<<"assign initial vector per TOMS"<, rosiejac > f(sp,sp); cout<<"create least squares function"< j(f); cout<<"create LBFGSBT (optimization algorithm object)"< umin(j,x,par,str); cout<<"run optimization"< sp(dim); LocalVector x(sp); cout<<"assign initial vector per TOMS"<, rosiejac > f(sp,sp); cout<<"create least squares function"< j(f); cout<<"create LBFGSBT (optimization algorithm object)"< umin(j,x,par,str); cout<<"run optimization"<