/// Copy constructor OaNlpOptim(const OaNlpOptim ©) : CglCutGenerator(copy), nlp_(copy.nlp_), maxDepth_(copy.maxDepth_), nSolve_(0), addOnlyViolated_(copy.addOnlyViolated_), global_(copy.global_), solves_per_level_(copy.solves_per_level_) { handler_ = new CoinMessageHandler(); handler_ -> setLogLevel(copy.handler_->logLevel()); messages_ = OaMessages(); }
OaDecompositionBase::OaDecompositionBase(BabSetupBase &b, bool leaveSiUnchanged, bool reassignLpsolver): CglCutGenerator(), nlp_(b.nonlinearSolver()), s_(&b), lp_(NULL), objects_(NULL), nObjects_(0), nLocalSearch_(0), handler_(NULL), leaveSiUnchanged_(leaveSiUnchanged), reassignLpsolver_(reassignLpsolver), timeBegin_(0), numSols_(0), parameters_(), currentNodeNumber_(-1) { handler_ = new CoinMessageHandler(); int logLevel; b.options()->GetIntegerValue("oa_log_level",logLevel,b.prefix()); b.options()->GetNumericValue("oa_log_frequency",parameters_.logFrequency_,b.prefix()); b.options()->GetNumericValue("allowable_fraction_gap", parameters_.gap_tol_, b.prefix()); handler_ -> setLogLevel(logLevel); b.options()->GetIntegerValue("solution_limit", parameters_.maxSols_,b.prefix()); messages_ = OaMessages(); timeBegin_ = CoinCpuTime(); b.options()->GetIntegerValue("milp_log_level",parameters_.subMilpLogLevel_,b.prefix()); b.options()->GetNumericValue("cutoff_decr",parameters_.cbcCutoffIncrement_,b.prefix()); b.options()->GetNumericValue("integer_tolerance",parameters_.cbcIntegerTolerance_,b.prefix()); int ivalue; b.options()->GetEnumValue("add_only_violated_oa", ivalue,b.prefix()); parameters_.addOnlyViolated_ = ivalue; b.options()->GetEnumValue("oa_cuts_scope", ivalue,b.prefix()); parameters_.global_ = ivalue; }