48#include "optimization/MinimizerParameters.hpp"
55 MinimizerParameters::MinimizerParameters() {
56 DefineOptionalParameterWithDefaultValue(UseMinimizer,
"useMinimizer",
58 DefineOptionalParameterWithDefaultValue(Method,
"method",
"SD");
59 DefineOptionalParameterWithDefaultValue(MaxIterations,
"maxIterations",
61 DefineOptionalParameterWithDefaultValue(
62 MaxStationaryStateIterations,
"maxStationaryStateIterations", 100);
63 DefineOptionalParameterWithDefaultValue(RootEpsilon,
"rootEpsilon", 1e-5);
64 DefineOptionalParameterWithDefaultValue(FunctionEpsilon,
"functionEpsilon",
66 DefineOptionalParameterWithDefaultValue(GradientNormEpsilon,
67 "gradientNormEpsilon", 1e-5);
68 DefineOptionalParameterWithDefaultValue(InitialStepSize,
"initialStepSize",
72 MinimizerParameters::~MinimizerParameters() {}
74 void MinimizerParameters::validate() {
75 CheckParameter(Method, isEqualIgnoreCase(
"SD") || isEqualIgnoreCase(
"CG") ||
76 isEqualIgnoreCase(
"BFGS"));
77 CheckParameter(MaxIterations, isPositive());
79 int mi = this->getMaxIterations();
82 CheckParameter(MaxStationaryStateIterations,
83 isGreaterThanOrEqualTo(one) && isLessThanOrEqualTo(mi));
84 CheckParameter(RootEpsilon, isPositive());
85 CheckParameter(GradientNormEpsilon, isPositive());
86 CheckParameter(InitialStepSize,
87 isGreaterThan(zero) && isLessThanOrEqualTo(oneR));
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.