45 #include "GlobiPack_TestLagrPolyMeritFunc1D.hpp"
46 #include "GlobiPack_BrentsLineSearch.hpp"
63 using GlobiPack::brentsLineSearch;
64 using GlobiPack::computeValue;
66 using Teuchos::inOutArg;
67 using Teuchos::outArg;
70 using Teuchos::rcpFromRef;
74 using Teuchos::parameterList;
77 double g_tol_scale = 100.0;
83 "tol", &g_tol_scale,
"Floating point tolerance scaling of eps." );
101 typedef typename ST::magnitudeType ScalarMag;
103 const RCP<TestLagrPolyMeritFunc1D<Scalar> > phi = quadPhi<Scalar>();
105 RCP<BrentsLineSearch<Scalar> > linesearch = brentsLineSearch<Scalar>();
107 linesearch->setOStream(rcpFromRef(out));
109 const PointEval1D<Scalar> point_k =
computePoint(*phi, ST::zero());
110 PointEval1D<Scalar> point_kp1 =
computePoint(*phi, as<Scalar>(8.0));
113 const bool linesearchResult = linesearch->doLineSearch(
114 *phi, point_k, inOutArg(point_kp1), outArg(numIters) );
118 as<Scalar>(g_tol_scale*ST::squareroot(ST::eps())));
120 as<Scalar>(g_tol_scale)*ST::eps());
131 TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL( BrentsLineSearch, cubicApprox, Scalar )
135 typedef typename ST::magnitudeType ScalarMag;
137 const RCP<TestLagrPolyMeritFunc1D<Scalar> > phi = quadPhi<Scalar>();
139 RCP<BrentsLineSearch<Scalar> > linesearch = brentsLineSearch<Scalar>();
141 const RCP<ParameterList> pl = parameterList();
142 pl->sublist(
"Minimize").set(
"Relative Tol", as<double>(g_tol_scale*ST::eps()));
143 pl->sublist(
"Minimize").set(
"Bracket Tol", as<double>(ST::eps()));
144 linesearch->setParameterList(pl);
146 linesearch->setOStream(rcpFromRef(out));
148 const PointEval1D<Scalar> point_k =
computePoint(*phi, ST::zero());
149 PointEval1D<Scalar> point_kp1 =
computePoint(*phi, as<Scalar>(8.0));
152 const bool linesearchResult = linesearch->doLineSearch(
153 *phi, point_k, inOutArg(point_kp1), outArg(numIters) );
157 as<Scalar>(g_tol_scale*ST::squareroot(ST::eps())));
159 as<Scalar>(g_tol_scale)*ST::eps());
TEUCHOS_UNIT_TEST_TEMPLATE_1_DECL(Teuchos_Conditions, NumberConditionSerialization, T)
static CommandLineProcessor & getCLP()
void setOption(const char option_true[], const char option_false[], bool *option_val, const char documentation[]=NULL)
PointEval1D< Scalar > computePoint(const MeritFunc1DBase< Scalar > &phi, const Scalar &alpha, const bool compute_phi=true, const bool compute_Dphi=false)
Compute a point as an object.
Linesearch subclass implementing a function-value-only approximate minimization algorithm using brack...
TypeTo as(const TypeFrom &t)
#define TEST_FLOATING_EQUALITY(v1, v2, tol)
#define TEUCHOS_UNIT_TEST_TEMPLATE_1_INSTANT_REAL_SCALAR_TYPES(TEST_GROUP, TEST_NAME)