本文整理汇总了C++中OptionsList::GetBoolValue方法的典型用法代码示例。如果您正苦于以下问题:C++ OptionsList::GetBoolValue方法的具体用法?C++ OptionsList::GetBoolValue怎么用?C++ OptionsList::GetBoolValue使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OptionsList
的用法示例。
在下文中一共展示了OptionsList::GetBoolValue方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitializeImpl
bool PDSearchDirCalculator::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetBoolValue("fast_step_computation", fast_step_computation_,
prefix);
options.GetBoolValue("mehrotra_algorithm", mehrotra_algorithm_, prefix);
return pd_solver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
options, prefix);
}
示例2: Max
bool Ma27TSolverInterface::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetNumericValue("ma27_pivtol", pivtol_, prefix);
if (options.GetNumericValue("ma27_pivtolmax", pivtolmax_, prefix)) {
ASSERT_EXCEPTION(pivtolmax_>=pivtol_, OPTION_INVALID,
"Option \"ma27_pivtolmax\": This value must be between "
"ma27_pivtol and 1.");
}
else {
pivtolmax_ = Max(pivtolmax_, pivtol_);
}
options.GetNumericValue("ma27_liw_init_factor", liw_init_factor_, prefix);
options.GetNumericValue("ma27_la_init_factor", la_init_factor_, prefix);
options.GetNumericValue("ma27_meminc_factor", meminc_factor_, prefix);
options.GetBoolValue("ma27_skip_inertia_check",
skip_inertia_check_, prefix);
options.GetBoolValue("ma27_ignore_singularity",
ignore_singularity_, prefix);
// The following option is registered by OrigIpoptNLP
options.GetBoolValue("warm_start_same_structure",
warm_start_same_structure_, prefix);
/* Set the default options for MA27 */
F77_FUNC(ma27id,MA27ID)(icntl_, cntl_);
#if COIN_IPOPT_VERBOSITY == 0
icntl_[0] = 0; // Suppress error messages
icntl_[1] = 0; // Suppress diagnostic messages
#endif
// Reset all private data
initialized_=false;
pivtol_changed_ = false;
refactorize_ = false;
la_increase_=false;
liw_increase_=false;
if (!warm_start_same_structure_) {
dim_=0;
nonzeros_=0;
}
else {
ASSERT_EXCEPTION(dim_>0 && nonzeros_>0, INVALID_WARMSTART,
"Ma27TSolverInterface called with warm_start_same_structure, but the problem is solved for the first time.");
}
return true;
}
示例3: InitializeImpl
bool PDFullSpaceSolver::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
// Check for the algorithm options
options.GetIntegerValue("min_refinement_steps", min_refinement_steps_, prefix);
options.GetIntegerValue("max_refinement_steps", max_refinement_steps_, prefix);
ASSERT_EXCEPTION(max_refinement_steps_ >= min_refinement_steps_, OPTION_INVALID,
"Option \"max_refinement_steps\": This value must be larger than or equal to min_refinement_steps (default 1)");
options.GetNumericValue("residual_ratio_max", residual_ratio_max_, prefix);
options.GetNumericValue("residual_ratio_singular", residual_ratio_singular_, prefix);
ASSERT_EXCEPTION(residual_ratio_singular_ >= residual_ratio_max_, OPTION_INVALID,
"Option \"residual_ratio_singular\": This value must be not smaller than residual_ratio_max.");
options.GetNumericValue("residual_improvement_factor", residual_improvement_factor_, prefix);
options.GetNumericValue("neg_curv_test_tol", neg_curv_test_tol_, prefix);
options.GetBoolValue("neg_curv_test_reg", neg_curv_test_reg_, prefix);
// Reset internal flags and data
augsys_improved_ = false;
if (!augSysSolver_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
options, prefix)) {
return false;
}
return perturbHandler_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
options, prefix);
}
示例4: InitializeImpl
bool MonotoneMuUpdate::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetNumericValue("mu_init", mu_init_, prefix);
options.GetNumericValue("barrier_tol_factor", barrier_tol_factor_, prefix);
options.GetNumericValue("mu_linear_decrease_factor", mu_linear_decrease_factor_, prefix);
options.GetNumericValue("mu_superlinear_decrease_power", mu_superlinear_decrease_power_, prefix);
options.GetBoolValue("mu_allow_fast_monotone_decrease", mu_allow_fast_monotone_decrease_, prefix);
options.GetNumericValue("tau_min", tau_min_, prefix);
options.GetNumericValue("compl_inf_tol", compl_inf_tol_, prefix);
IpData().Set_mu(mu_init_);
Number tau = Max(tau_min_, 1.0 - mu_init_);
IpData().Set_tau(tau);
initialized_ = false;
//TODO we need to clean up the mu-update for the restoration phase
if (prefix=="resto.") {
first_iter_resto_ = true;
}
else {
first_iter_resto_ = false;
}
return true;
}
示例5: InitializeImpl
bool OrigIterationOutput::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetBoolValue("print_info_string", print_info_string_, prefix);
return true;
}
示例6: InitializeImpl
bool StdStepCalculator::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetNumericValue("sens_bound_eps", bound_eps_, prefix);
options.GetBoolValue("sens_kkt_residuals", kkt_residuals_, prefix);
SensitivityStepCalculator::InitializeImpl(options,
prefix);
return true;
}
示例7: InitializeImpl
bool OrigIterationOutput::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetBoolValue("print_info_string", print_info_string_, prefix);
Index enum_int;
options.GetEnumValue("inf_pr_output", enum_int, prefix);
inf_pr_output_ = InfPrOutput(enum_int);
return true;
}
示例8: InitializeImpl
bool CGPenaltyLSAcceptor::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetBoolValue("never_use_piecewise_penalty_ls",
never_use_piecewise_penalty_ls_, prefix);
options.GetNumericValue("eta_penalty", eta_penalty_, prefix);
options.GetNumericValue("penalty_update_infeasibility_tol",
penalty_update_infeasibility_tol_, prefix);
options.GetNumericValue("eta_min", eta_min_, prefix);
options.GetNumericValue("penalty_update_compl_tol",
penalty_update_compl_tol_, prefix);
options.GetNumericValue("chi_hat", chi_hat_, prefix);
options.GetNumericValue("chi_tilde", chi_tilde_, prefix);
options.GetNumericValue("chi_cup", chi_cup_, prefix);
options.GetNumericValue("gamma_hat", gamma_hat_, prefix);
options.GetNumericValue("gamma_tilde", gamma_tilde_, prefix);
options.GetNumericValue("epsilon_c", epsilon_c_, prefix);
options.GetNumericValue("piecewisepenalty_gamma_obj",
piecewisepenalty_gamma_obj_, prefix);
options.GetNumericValue("piecewisepenalty_gamma_infeasi",
piecewisepenalty_gamma_infeasi_, prefix);
options.GetNumericValue("pen_theta_max_fact", pen_theta_max_fact_, prefix);
options.GetNumericValue("min_alpha_primal", min_alpha_primal_, prefix);
options.GetNumericValue("theta_min", theta_min_, prefix);
options.GetNumericValue("mult_diverg_feasibility_tol", mult_diverg_feasibility_tol_, prefix);
options.GetNumericValue("mult_diverg_y_tol", mult_diverg_y_tol_, prefix);
// The following option has been registered by FilterLSAcceptor
options.GetIntegerValue("max_soc", max_soc_, prefix);
// The following option has been registered by CGSearhDirCalc
options.GetNumericValue("penalty_max", penalty_max_, prefix);
if (max_soc_>0) {
ASSERT_EXCEPTION(IsValid(pd_solver_), OPTION_INVALID,
"Option \"max_soc\": This option is non-negative, but no linear solver for computing the SOC given to FilterLSAcceptor object.");
}
options.GetNumericValue("kappa_soc", kappa_soc_, prefix);
pen_theta_max_ = -1.;
pen_curr_mu_ = IpData().curr_mu();
counter_first_type_penalty_updates_ = 0;
counter_second_type_penalty_updates_ = 0;
curr_eta_ = -1.;
CGPenData().SetPenaltyUninitialized();
ls_counter_ = 0;
best_KKT_error_ = -1.;
accepted_by_Armijo_ = true;
//never_do_restor_ = true;
jump_for_tiny_step_ = 0;
return true;
}
示例9: InitializeImpl
bool RestoIterationOutput::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetBoolValue("print_info_string", print_info_string_, prefix);
Index enum_int;
options.GetEnumValue("inf_pr_output", enum_int, prefix);
inf_pr_output_ = InfPrOutput(enum_int);
bool retval = true;
if (IsValid(resto_orig_iteration_output_)) {
retval = resto_orig_iteration_output_->Initialize(Jnlst(), IpNLP(),
IpData(), IpCq(),
options, prefix);
}
return retval;
}
示例10: InitializeImpl
bool GenAugSystemSolver::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
// This option is registered by OrigIpoptNLP
options.GetBoolValue("warm_start_same_structure",
warm_start_same_structure_, prefix);
if (!warm_start_same_structure_) {
delete [] dx_vals_copy_;
delete [] ds_vals_copy_;
delete [] dc_vals_copy_;
delete [] dd_vals_copy_;
}
return solver_interface_->Initialize(Jnlst(), IpNLP(), IpData(), IpCq(),
options, prefix);
}
示例11: OptionsList
bool MinC_1NrmRestorationPhase::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
// keep a copy of these options to use when setting up the
// restoration phase
resto_options_ = new OptionsList(options);
options.GetNumericValue("constr_mult_reset_threshold",
constr_mult_reset_threshold_,
prefix);
options.GetNumericValue("bound_mult_reset_threshold",
bound_mult_reset_threshold_,
prefix);
options.GetBoolValue("expect_infeasible_problem",
expect_infeasible_problem_,
prefix);
// This is registered in OptimalityErrorConvergenceCheck
options.GetNumericValue("constr_viol_tol", constr_viol_tol_, prefix);
// Avoid that the restoration phase is trigged by user option in
// first iteration of the restoration phase
resto_options_->SetStringValue("resto.start_with_resto", "no");
// We want the default for the theta_max_fact in the restoration
// phase higher than for the regular phase
Number theta_max_fact;
if (!options.GetNumericValue("resto.theta_max_fact",
theta_max_fact, "")) {
resto_options_->SetNumericValue("resto.theta_max_fact", 1e8);
}
if (!options.GetNumericValue("resto_failure_feasibility_threshold",
resto_failure_feasibility_threshold_, prefix)) {
resto_failure_feasibility_threshold_ = 1e2*IpData().tol();
}
count_restorations_ = 0;
bool retvalue = true;
if (IsValid(eq_mult_calculator_)) {
retvalue = eq_mult_calculator_->Initialize(Jnlst(), IpNLP(), IpData(),
IpCq(), options, prefix);
}
return retvalue;
}
示例12: InitializeImpl
bool WarmStartIterateInitializer::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
if (!options.GetNumericValue("warm_start_bound_push",
warm_start_bound_push_, prefix)) {
options.GetNumericValue("bound_push",
warm_start_bound_push_, prefix);
}
if (!options.GetNumericValue("warm_start_bound_frac",
warm_start_bound_frac_, prefix)) {
options.GetNumericValue("bound_frac",
warm_start_bound_frac_, prefix);
}
if (!options.GetNumericValue("warm_start_slack_bound_push",
warm_start_slack_bound_push_, prefix)) {
if (!options.GetNumericValue("bound_push",
warm_start_slack_bound_push_, prefix)) {
if (!options.GetNumericValue("warm_start_slack_bound_push",
warm_start_slack_bound_push_, prefix)) {
options.GetNumericValue("bound_push",
warm_start_slack_bound_push_, prefix);
}
}
}
if (!options.GetNumericValue("warm_start_slack_bound_frac",
warm_start_slack_bound_frac_, prefix)) {
if (!options.GetNumericValue("bound_frac",
warm_start_slack_bound_frac_, prefix)) {
if (!options.GetNumericValue("warm_start_slack_bound_frac",
warm_start_slack_bound_frac_, prefix)) {
options.GetNumericValue("bound_frac",
warm_start_slack_bound_frac_, prefix);
}
}
}
options.GetNumericValue("warm_start_mult_bound_push",
warm_start_mult_bound_push_, prefix);
options.GetNumericValue("warm_start_mult_init_max",
warm_start_mult_init_max_, prefix);
options.GetNumericValue("warm_start_target_mu",
warm_start_target_mu_, prefix);
options.GetBoolValue("warm_start_entire_iterate",
warm_start_entire_iterate_, prefix);
return true;
}
示例13: InitializeImpl
bool MumpsSolverInterface::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetNumericValue("mumps_pivtol", pivtol_, prefix);
if (options.GetNumericValue("mumps_pivtolmax", pivtolmax_, prefix)) {
ASSERT_EXCEPTION(pivtolmax_>=pivtol_, OPTION_INVALID,
"Option \"mumps_pivtolmax\": This value must be between "
"mumps_pivtol and 1.");
}
else {
pivtolmax_ = Max(pivtolmax_, pivtol_);
}
options.GetIntegerValue("mumps_mem_percent",
mem_percent_, prefix);
// The following option is registered by OrigIpoptNLP
options.GetBoolValue("warm_start_same_structure",
warm_start_same_structure_, prefix);
options.GetIntegerValue("mumps_permuting_scaling",
mumps_permuting_scaling_, prefix);
options.GetIntegerValue("mumps_pivot_order", mumps_pivot_order_, prefix);
options.GetIntegerValue("mumps_scaling", mumps_scaling_, prefix);
options.GetNumericValue("mumps_dep_tol", mumps_dep_tol_, prefix);
// Reset all private data
initialized_ = false;
pivtol_changed_ = false;
refactorize_ = false;
have_symbolic_factorization_ = false;
DMUMPS_STRUC_C* mumps_ = (DMUMPS_STRUC_C*)mumps_ptr_;
if (!warm_start_same_structure_) {
mumps_->n = 0;
mumps_->nz = 0;
}
else {
ASSERT_EXCEPTION(mumps_->n>0 && mumps_->nz>0, INVALID_WARMSTART,
"MumpsSolverInterface called with warm_start_same_structure, but the problem is solved for the first time.");
}
return true;
}
示例14: InitializeImpl
bool CGPerturbationHandler::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
options.GetNumericValue("max_hessian_perturbation", delta_xs_max_, prefix);
options.GetNumericValue("min_hessian_perturbation", delta_xs_min_, prefix);
options.GetNumericValue("perturb_inc_fact_first", delta_xs_first_inc_fact_, prefix);
options.GetNumericValue("perturb_inc_fact", delta_xs_inc_fact_, prefix);
options.GetNumericValue("perturb_dec_fact", delta_xs_dec_fact_, prefix);
options.GetNumericValue("first_hessian_perturbation", delta_xs_init_, prefix);
options.GetNumericValue("jacobian_regularization_value", delta_cd_val_, prefix);
options.GetNumericValue("jacobian_regularization_exponent", delta_cd_exp_, prefix);
options.GetBoolValue("perturb_always_cd", perturb_always_cd_, prefix);
// The following option has been registered from CGSearchDirCalc
options.GetNumericValue("penalty_max", penalty_max_, prefix);
// The following option has been registered from CGPenaltyLSAccepter
options.GetNumericValue("mult_diverg_feasibility_tol", mult_diverg_feasibility_tol_, prefix);
hess_degenerate_ = NOT_YET_DETERMINED;
if (!perturb_always_cd_) {
jac_degenerate_ = NOT_YET_DETERMINED;
}
else {
jac_degenerate_ = NOT_DEGENERATE;
}
degen_iters_ = 0;
delta_x_curr_ = 0.;
delta_s_curr_ = 0.;
delta_c_curr_ = 0.;
delta_d_curr_ = 0.;
delta_x_last_ = 0.;
delta_s_last_ = 0.;
delta_c_last_ = 0.;
delta_d_last_ = 0.;
test_status_ = NO_TEST;
return PDPerturbationHandler::InitializeImpl(options, prefix);
}
示例15: InitializeImpl
bool IterativePardisoSolverInterface::InitializeImpl(const OptionsList& options,
const std::string& prefix)
{
Index enum_int;
options.GetEnumValue("pardiso_matching_strategy", enum_int, prefix);
match_strat_ = PardisoMatchingStrategy(enum_int);
options.GetBoolValue("pardiso_redo_symbolic_fact_only_if_inertia_wrong",
pardiso_redo_symbolic_fact_only_if_inertia_wrong_,
prefix);
options.GetBoolValue("pardiso_repeated_perturbation_means_singular",
pardiso_repeated_perturbation_means_singular_,
prefix);
Index pardiso_out_of_core_power;
options.GetIntegerValue("pardiso_out_of_core_power",
pardiso_out_of_core_power, prefix);
options.GetBoolValue("pardiso_skip_inertia_check",
skip_inertia_check_, prefix);
// PD system
options.GetIntegerValue("pardiso_max_iter", pardiso_max_iter_, prefix);
options.GetNumericValue("pardiso_iter_relative_tol",
pardiso_iter_relative_tol_, prefix);
options.GetIntegerValue("pardiso_iter_coarse_size",
pardiso_iter_coarse_size_, prefix);
options.GetIntegerValue("pardiso_iter_max_levels",
pardiso_iter_max_levels_, prefix);
options.GetNumericValue("pardiso_iter_dropping_factor",
pardiso_iter_dropping_factor_, prefix);
options.GetNumericValue("pardiso_iter_dropping_schur",
pardiso_iter_dropping_schur_, prefix);
options.GetIntegerValue("pardiso_iter_max_row_fill",
pardiso_iter_max_row_fill_, prefix);
options.GetNumericValue("pardiso_iter_inverse_norm_factor",
pardiso_iter_inverse_norm_factor_, prefix);
// Normal system
options.GetIntegerValue("pardiso_max_iter", normal_pardiso_max_iter_,
prefix+"normal.");
options.GetNumericValue("pardiso_iter_relative_tol",
normal_pardiso_iter_relative_tol_,
prefix+"normal.");
options.GetIntegerValue("pardiso_iter_coarse_size",
normal_pardiso_iter_coarse_size_,
prefix+"normal.");
options.GetIntegerValue("pardiso_iter_max_levels",
normal_pardiso_iter_max_levels_,
prefix+"normal.");
options.GetNumericValue("pardiso_iter_dropping_factor",
normal_pardiso_iter_dropping_factor_,
prefix+"normal.");
options.GetNumericValue("pardiso_iter_dropping_schur",
normal_pardiso_iter_dropping_schur_,
prefix+"normal.");
options.GetIntegerValue("pardiso_iter_max_row_fill",
normal_pardiso_iter_max_row_fill_,
prefix+"normal.");
options.GetNumericValue("pardiso_iter_inverse_norm_factor",
normal_pardiso_iter_inverse_norm_factor_,
prefix+"normal.");
int pardiso_msglvl;
options.GetIntegerValue("pardiso_msglvl", pardiso_msglvl, prefix);
options.GetIntegerValue("pardiso_max_droptol_corrections",
pardiso_max_droptol_corrections_, prefix);
// Number value = 0.0;
// Tell Pardiso to release all memory if it had been used before
if (initialized_) {
ipfint PHASE = -1;
ipfint N = dim_;
ipfint NRHS = 0;
ipfint ERROR;
ipfint idmy;
double ddmy;
F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_, &PHASE, &N,
&ddmy, &idmy, &idmy, &idmy, &NRHS, IPARM_,
&MSGLVL_, &ddmy, &ddmy, &ERROR, DPARM_) ;
DBG_ASSERT(ERROR==0);
}
// Reset all private data
dim_=0;
nonzeros_=0;
have_symbolic_factorization_=false;
initialized_=false;
delete[] a_;
a_ = NULL;
#ifdef HAVE_PARDISO_OLDINTERFACE
THROW_EXCEPTION(OPTION_INVALID, "The inexact version works only with a new version of Pardiso (at least 4.0)");
#endif
// Call Pardiso's initialization routine
IPARM_[0] = 0; // Tell it to fill IPARM with default values(?)
ipfint ERROR = 0;
ipfint SOLVER = 1; // initialze only direct solver
F77_FUNC(pardisoinit,PARDISOINIT)(PT_, &MTYPE_, &SOLVER,
IPARM_, DPARM_, &ERROR);
// Set some parameters for Pardiso
//.........这里部分代码省略.........