本文整理汇总了C++中OptionsList::GetStringValue方法的典型用法代码示例。如果您正苦于以下问题:C++ OptionsList::GetStringValue方法的具体用法?C++ OptionsList::GetStringValue怎么用?C++ OptionsList::GetStringValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OptionsList
的用法示例。
在下文中一共展示了OptionsList::GetStringValue方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: numbering
bool Ma86SolverInterface::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
ma86_default_control(&control_);
control_.f_arrays = 1; // Use Fortran numbering (faster)
/* Note: we can't set control_.action = false as we need to know the
* intertia. (Otherwise we just enter the restoration phase and fail) */
options.GetIntegerValue("ma86_print_level", control_.diagnostics_level,
prefix);
options.GetIntegerValue("ma86_nemin", control_.nemin, prefix);
options.GetNumericValue("ma86_small", control_.small_, prefix);
options.GetNumericValue("ma86_static", control_.static_, prefix);
options.GetNumericValue("ma86_u", control_.u, prefix);
options.GetNumericValue("ma86_umax", umax_, prefix);
std::string order_method, scaling_method;
options.GetStringValue("ma86_order", order_method, prefix);
if(order_method == "metis") {
ordering_ = ORDER_METIS;
} else if(order_method == "amd") {
ordering_ = ORDER_AMD;
} else {
ordering_ = ORDER_AUTO;
}
options.GetStringValue("ma86_scaling", scaling_method, prefix);
if(scaling_method == "mc64") {
control_.scaling = 1;
} else if(scaling_method == "mc77") {
control_.scaling = 2;
} else {
control_.scaling = 0;
}
return true; // All is well
}
示例2: numbering
bool Ma77SolverInterface::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
ma77_default_control(&control_);
control_.f_arrays = 1; // Use Fortran numbering (faster)
control_.bits=32;
// FIXME: HSL_MA77 should be updated to allow a matrix with new
// values to be refactorized after a -11 (singular) error.
//control_.action = 0; // false, should exit with error on singularity
options.GetIntegerValue("ma77_print_level", control_.print_level, prefix);
options.GetIntegerValue("ma77_buffer_lpage", control_.buffer_lpage[0], prefix);
options.GetIntegerValue("ma77_buffer_lpage", control_.buffer_lpage[1], prefix);
options.GetIntegerValue("ma77_buffer_npage", control_.buffer_npage[0], prefix);
options.GetIntegerValue("ma77_buffer_npage", control_.buffer_npage[1], prefix);
int temp;
options.GetIntegerValue("ma77_file_size", temp, prefix);
control_.file_size = temp;
options.GetIntegerValue("ma77_maxstore", temp, prefix);
control_.maxstore = temp;
options.GetIntegerValue("ma77_nemin", control_.nemin, prefix);
options.GetNumericValue("ma77_small", control_.small, prefix);
options.GetNumericValue("ma77_static", control_.static_, prefix);
options.GetNumericValue("ma77_u", control_.u, prefix);
options.GetNumericValue("ma77_umax", umax_, prefix);
std::string order_method;
options.GetStringValue("ma77_order", order_method, prefix);
if (order_method == "metis") {
ordering_ = ORDER_METIS;
} else {
ordering_ = ORDER_AMD;
}
return true; // All is well
}
示例3: OptimalityErrorConvergenceCheck
SmartPtr<IpoptAlgorithm>
AlgorithmBuilder::BuildBasicAlgorithm(const Journalist& jnlst,
const OptionsList& options,
const std::string& prefix)
{
DBG_START_FUN("AlgorithmBuilder::BuildBasicAlgorithm",
dbg_verbosity);
bool mehrotra_algorithm;
options.GetBoolValue("mehrotra_algorithm", mehrotra_algorithm, prefix);
// Create the convergence check
SmartPtr<ConvergenceCheck> convCheck =
new OptimalityErrorConvergenceCheck();
// Create the solvers that will be used by the main algorithm
SmartPtr<SparseSymLinearSolverInterface> SolverInterface;
std::string linear_solver;
options.GetStringValue("linear_solver", linear_solver, prefix);
bool use_custom_solver = false;
if (linear_solver=="ma27") {
#ifndef COINHSL_HAS_MA27
# ifdef HAVE_LINEARSOLVERLOADER
SolverInterface = new Ma27TSolverInterface();
if (!LSL_isMA27available()) {
char buf[256];
int rc = LSL_loadHSL(NULL, buf, 255);
if (rc) {
std::string errmsg;
errmsg = "Selected linear solver MA27 not available.\nTried to obtain MA27 from shared library \"";
errmsg += LSL_HSLLibraryName();
errmsg += "\", but the following error occured:\n";
errmsg += buf;
THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str());
}
}
# else
THROW_EXCEPTION(OPTION_INVALID, "Support for MA27 has not been compiled into Ipopt.");
# endif
#else
SolverInterface = new Ma27TSolverInterface();
#endif
}
else if (linear_solver=="ma57") {
#ifndef COINHSL_HAS_MA57
# ifdef HAVE_LINEARSOLVERLOADER
SolverInterface = new Ma57TSolverInterface();
if (!LSL_isMA57available()) {
char buf[256];
int rc = LSL_loadHSL(NULL, buf, 255);
if (rc) {
std::string errmsg;
errmsg = "Selected linear solver MA57 not available.\nTried to obtain MA57 from shared library \"";
errmsg += LSL_HSLLibraryName();
errmsg += "\", but the following error occured:\n";
errmsg += buf;
THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str());
}
}
# else
THROW_EXCEPTION(OPTION_INVALID, "Support for MA57 has not been compiled into Ipopt.");
# endif
#else
SolverInterface = new Ma57TSolverInterface();
#endif
}
else if (linear_solver=="ma77") {
#ifndef COINHSL_HAS_MA77
# ifdef HAVE_LINEARSOLVERLOADER
SolverInterface = new Ma77SolverInterface();
if (!LSL_isMA77available()) {
char buf[256];
int rc = LSL_loadHSL(NULL, buf, 255);
if (rc) {
std::string errmsg;
errmsg = "Selected linear solver HSL_MA77 not available.\nTried to obtain HSL_MA77 from shared library \"";
errmsg += LSL_HSLLibraryName();
errmsg += "\", but the following error occured:\n";
errmsg += buf;
THROW_EXCEPTION(OPTION_INVALID, errmsg.c_str());
}
}
# else
THROW_EXCEPTION(OPTION_INVALID, "Support for HSL_MA77 has not been compiled into Ipopt.");
# endif
#else
SolverInterface = new Ma77SolverInterface();
#endif
}
else if (linear_solver=="ma86") {
#ifndef COINHSL_HAS_MA86
# ifdef HAVE_LINEARSOLVERLOADER
SolverInterface = new Ma86SolverInterface();
if (!LSL_isMA86available()) {
char buf[256];
int rc = LSL_loadHSL(NULL, buf, 255);
//.........这里部分代码省略.........
示例4: InitializeImpl
bool IpoptAlgorithm::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
DBG_START_METH("IpoptAlgorithm::InitializeImpl",
dbg_verbosity);
SmartPtr<const OptionsList> my_options;
options.GetBoolValue("mehrotra_algorithm", mehrotra_algorithm_, prefix);
if (mehrotra_algorithm_) {
// Verify a few options and set a few new ones. But we better
// make a copy of the incoming options.
SmartPtr<OptionsList> new_options = new OptionsList(options);
// Check required options are set correctly
std::string string_option;
if (new_options->GetStringValue("adaptive_mu_globalization", string_option, prefix)) {
ASSERT_EXCEPTION(string_option=="never-monotone-mode", OPTION_INVALID,
"If mehrotra_algorithm=yes, adaptive_mu_globalization must be \"never-monotone-mode\".");
}
else {
new_options->SetStringValue("adaptive_mu_globalization",
"never-monotone-mode", false);
}
// The corrector step is already taken case of in
// ComputeSearchDirection below
if (new_options->GetStringValue("corrector_type", string_option, prefix)) {
ASSERT_EXCEPTION(string_option=="none", OPTION_INVALID,
"If mehrotra_algorithm=yes, corrector_type must be \"none\".");
}
else {
new_options->SetStringValue("corrector_type", "none", false);
}
if (new_options->GetStringValue("accept_every_trial_step", string_option, prefix)) {
ASSERT_EXCEPTION(string_option=="yes", OPTION_INVALID,
"If mehrotra_algorithm=yes, accept_every_trial_step must be \"yes\".");
}
else {
new_options->SetStringValue("accept_every_trial_step", "yes", false);
}
// Change some default options
new_options->SetNumericValueIfUnset("bound_push", 10.);
new_options->SetNumericValueIfUnset("bound_frac", 0.2);
new_options->SetNumericValueIfUnset("bound_mult_init_val", 10.);
new_options->SetNumericValueIfUnset("constr_mult_init_max", 0.);
new_options->SetStringValueIfUnset("alpha_for_y", "bound_mult");
new_options->SetStringValueIfUnset("least_square_init_primal", "yes");
my_options = ConstPtr(new_options);
}
else {
my_options = &options;
}
bool bval;
options.GetBoolValue("sb", bval, prefix);
if (bval) {
copyright_message_printed = true;
}
// Store which linear solver is chosen for later output
options.GetStringValue("linear_solver", linear_solver_, prefix);
// Read the IpoptAlgorithm options
// Initialize the Data object
bool retvalue = IpData().Initialize(Jnlst(), *my_options, prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
"the IpIpoptData object failed to initialize.");
// Initialize the CQ object
retvalue = IpCq().Initialize(Jnlst(), *my_options, prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
"the IpIpoptCalculatedQuantities object failed to initialize.");
// Initialize the NLP object
retvalue = IpNLP().Initialize(Jnlst(), *my_options, prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
"the IpIpoptNLP object failed to initialize.");
// Initialize all the strategies
retvalue = iterate_initializer_->Initialize(Jnlst(), IpNLP(), IpData(),
IpCq(), *my_options, prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
"the iterate_initializer strategy failed to initialize.");
retvalue = mu_update_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
*my_options, prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
"the mu_update strategy failed to initialize.");
retvalue = search_dir_calculator_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
options,prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
"the search_direction_calculator strategy failed to initialize.");
retvalue = line_search_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
*my_options,prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
"the line_search strategy failed to initialize.");
retvalue = conv_check_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
*my_options, prefix);
ASSERT_EXCEPTION(retvalue, FAILED_INITIALIZATION,
//.........这里部分代码省略.........