53 #define ROL_VALIDATE( A ) A 55 #define ROL_VALIDATE( A ) 61 #include <Teuchos_getConst.hpp> 62 #include <Teuchos_RCP.hpp> 63 #include <Teuchos_ScalarTraits.hpp> 64 #include <Teuchos_TestForException.hpp> 70 #define ROL_NUM_CHECKDERIV_STEPS 13 94 AlgorithmState(
void) : iter(0), minIter(0), nfval(0), ngrad(0), value(0), minValue(0),
95 gnorm(std::numeric_limits<Real>::max()),
96 cnorm(std::numeric_limits<Real>::max()),
97 snorm(std::numeric_limits<Real>::max()),
98 aggregateGradientNorm(std::numeric_limits<Real>::max()),
99 aggregateModelError(std::numeric_limits<Real>::max()),
101 iterateVec(Teuchos::null), lagmultVec(Teuchos::null), minIterVec(Teuchos::null) {}
112 StepState(
void) : gradientVec(Teuchos::null), descentVec(Teuchos::null), constraintVec(Teuchos::null),
118 static const double ROL_EPSILON = std::abs(Teuchos::ScalarTraits<double>::eps());
126 static const double ROL_OVERFLOW = std::abs(Teuchos::ScalarTraits<double>::rmax());
133 static const double ROL_UNDERFLOW = std::abs(Teuchos::ScalarTraits<double>::rmin());
137 return (c ==
' ' || c ==
'-' || c ==
'(' || c ==
')' || c==
'\'' || c==
'\r' || c==
'\n' || c==
'\t');
142 std::string output = s;
144 std::transform( output.begin(), output.end(), output.begin(), ::tolower );
172 std::string retString;
182 case STEP_LAST: retString =
"Last Type (Dummy)";
break;
183 default: retString =
"INVALID EStep";
205 return type =
static_cast<EStep>(type+1);
215 return type =
static_cast<EStep>(type-1);
249 std::string retString;
255 default: retString =
"INVALID EBoundAlgorithm";
322 std::string retString;
329 case DESCENT_LAST: retString =
"Last Type (Dummy)";
break;
330 default: retString =
"INVALID ESecant";
350 return type =
static_cast<EDescent>(type+1);
360 return type =
static_cast<EDescent>(type-1);
397 std::string retString;
399 case SECANT_LBFGS: retString =
"Limited-Memory BFGS";
break;
400 case SECANT_LDFP: retString =
"Limited-Memory DFP";
break;
401 case SECANT_LSR1: retString =
"Limited-Memory SR1";
break;
404 case SECANT_LAST: retString =
"Last Type (Dummy)";
break;
405 default: retString =
"INVALID ESecant";
425 return type =
static_cast<ESecant>(type+1);
435 return type =
static_cast<ESecant>(type-1);
469 std::string retString;
471 case KRYLOV_CG: retString =
"Conjugate Gradients";
break;
472 case KRYLOV_CR: retString =
"Conjugate Residuals";
break;
475 case KRYLOV_LAST: retString =
"Last Type (Dummy)";
break;
476 default: retString =
"INVALID EKrylov";
494 return type =
static_cast<EKrylov>(type+1);
504 return type =
static_cast<EKrylov>(type-1);
550 std::string retString;
562 default: retString =
"INVALID ENonlinearCG";
638 std::string retString;
649 default: retString =
"INVALID ELineSearch";
719 std::string retString;
728 default: retString =
"INVALID ECurvatureCondition";
795 std::string retString;
802 default: retString =
"INVALID ETrustRegion";
873 std::string retString;
885 default: retString =
"INVALID ETestObjectives";
962 std::string retString;
974 default: retString =
"INVALID ETestOptProblem";
1040 std::string retString;
1045 default: retString =
"INVALID EConstraint";
1091 namespace Finite_Difference_Arrays {
1101 const double weights[4][5] = { { -1.0, 1.0, 0.0, 0.0, 0.0 },
1102 { 0.0, -1.0/2.0, 1.0/2.0, 0.0, 0.0 },
1103 { -1.0/2.0, -1.0/3.0, 1.0, -1.0/6.0, 0.0 },
1104 { 0.0, -2.0/3.0, 1.0/12.0, 2.0/3.0, -1.0/12.0 }
ETestOptProblem
Enumeration of test optimization problems.
int isValidKrylov(EKrylov d)
Verifies validity of a Secant enum.
EStep StringToEStep(std::string s)
int isValidConstraint(EConstraint c)
Verifies validity of a Secant enum.
int isValidSecant(ESecant s)
Verifies validity of a Secant enum.
EDistribution & operator--(EDistribution &type)
const double weights[4][5]
ELineSearch StringToELineSearch(std::string s)
EBoundAlgorithm StringToEBoundAlgorithm(std::string s)
EBoundAlgorithm
Enumeration of algorithms to handle bound constraints.
Real aggregateGradientNorm
int isValidBoundAlgorithm(EBoundAlgorithm d)
Verifies validity of a Bound Algorithm enum.
std::string removeStringFormat(std::string s)
ELineSearch
Enumeration of line-search types.
static const double ROL_THRESHOLD
Tolerance for various equality tests.
EConstraint StringToEConstraint(std::string s)
ESecant StringToESecant(std::string s)
std::string EDescentToString(EDescent tr)
int isValidTestOptProblem(ETestOptProblem to)
Verifies validity of a TestOptProblem enum.
Teuchos::RCP< Vector< Real > > descentVec
EKrylov
Enumeration of Krylov methods.
int isValidTestObjectives(ETestObjectives to)
Verifies validity of a TestObjectives enum.
int isValidTrustRegion(ETrustRegion ls)
Verifies validity of a TrustRegion enum.
EKrylov StringToEKrylov(std::string s)
EDescent StringToEDescent(std::string s)
State for algorithm class. Will be used for restarts.
ENonlinearCG
Enumeration of nonlinear CG algorithms.
ETestObjectives StringToETestObjectives(std::string s)
std::string ECurvatureConditionToString(ECurvatureCondition ls)
std::string EConstraintToString(EConstraint c)
ESecant
Enumeration of secant update algorithms.
std::string ETestOptProblemToString(ETestOptProblem to)
EDistribution & operator++(EDistribution &type)
std::string ENonlinearCGToString(ENonlinearCG tr)
ENonlinearCG StringToENonlinearCG(std::string s)
int isValidDescent(EDescent d)
Verifies validity of a Secant enum.
std::string ELineSearchToString(ELineSearch ls)
int isValidLineSearch(ELineSearch ls)
Verifies validity of a LineSearch enum.
State for step class. Will be used for restarts.
int isValidStep(EStep ls)
Verifies validity of a TrustRegion enum.
ETestObjectives
Enumeration of test objective functions.
static const double ROL_INF
Teuchos::RCP< Vector< Real > > minIterVec
std::string EKrylovToString(EKrylov tr)
Teuchos::RCP< Vector< Real > > constraintVec
int isValidCurvatureCondition(ECurvatureCondition ls)
Verifies validity of a CurvatureCondition enum.
ETrustRegion StringToETrustRegion(std::string s)
ECurvatureCondition
Enumeration of line-search curvature conditions.
std::string ETestObjectivesToString(ETestObjectives to)
Teuchos::RCP< Vector< Real > > lagmultVec
Teuchos::RCP< Vector< Real > > iterateVec
ECurvatureCondition StringToECurvatureCondition(std::string s)
ETrustRegion
Enumeration of trust-region solver types.
static const double ROL_NINF
std::string ETrustRegionToString(ETrustRegion tr)
std::string ESecantToString(ESecant tr)
std::string EStepToString(EStep tr)
EStep
Enumeration of step types.
static const double ROL_OVERFLOW
Platform-dependent maximum double.
EConstraint
Enumeration of constraint types.
ETestOptProblem StringToETestOptProblem(std::string s)
int isValidNonlinearCG(ENonlinearCG s)
Verifies validity of a NonlinearCG enum.
std::string EBoundAlgorithmToString(EBoundAlgorithm tr)
EDescent
Enumeration of descent direction types.
Teuchos::RCP< Vector< Real > > gradientVec
static const double ROL_UNDERFLOW
Platform-dependent minimum double.
static const double ROL_EPSILON
Platform-dependent machine epsilon.