本文整理汇总了C++中ipopt::SmartPtr::SetStringValue方法的典型用法代码示例。如果您正苦于以下问题:C++ SmartPtr::SetStringValue方法的具体用法?C++ SmartPtr::SetStringValue怎么用?C++ SmartPtr::SetStringValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ipopt::SmartPtr
的用法示例。
在下文中一共展示了SmartPtr::SetStringValue方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setParameters
void setParameters(Ipopt::SmartPtr<Ipopt::OptionsList> options)
{
const char *iptoptLinearSolver = getenv("IPOPT_LINEAR_SOLVER");
if (!iptoptLinearSolver)
iptoptLinearSolver = "ma57";
options->SetStringValue("linear_solver", iptoptLinearSolver);
if (!strcmp(iptoptLinearSolver, "ma27"))
{
/* This helps to improve performance from 0.6 to 0.5 sec */
options->SetNumericValue("ma27_liw_init_factor", 100.);
options->SetNumericValue("ma27_la_init_factor", 100.);
}
else if (!strcmp(iptoptLinearSolver, "ma57"))
{
/*
* Decreases performance from 0.04 to 0.13 sec:
* options->SetStringValue("ma57_automatic_scaling", "yes");
*/
/*
* Not evident, whether this helps to increase the performance,
* but it already helped to avoid memory reallocations.
*/
options->SetNumericValue("ma57_pre_alloc", 100.);
}
double ipoptTol = 0.;
if (tryGetenvDouble("IPOPT_TOL", ipoptTol))
options->SetNumericValue("tol", ipoptTol);
double ipoptAcceptableTol = 0.;
if (tryGetenvDouble("IPOPT_ACCEPTABLE_TOL", ipoptAcceptableTol))
options->SetNumericValue("acceptable_tol", 1e-3);
if (getenv("DERIVATIVE_TEST_FIRST"))
options->SetStringValue("derivative_test", "first-order");
else if (getenv("DERIVATIVE_TEST_SECOND"))
options->SetStringValue("derivative_test", "second-order");
else if (getenv("DERIVATIVE_TEST_ONLY_SECOND"))
options->SetStringValue("derivative_test", "only-second-order");
if (getenv("HESSIAN_APPROX"))
options->SetStringValue("hessian_approximation",
"limited-memory");
}