[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lmi-commits] [lmi] master 3716c3e4 4/5: Experimentally perform specamt
From: |
Greg Chicares |
Subject: |
[lmi-commits] [lmi] master 3716c3e4 4/5: Experimentally perform specamt strategies during solves |
Date: |
Fri, 2 Sep 2022 14:23:17 -0400 (EDT) |
branch: master
commit 3716c3e4aa8427c0721a75f80df39db8415c6429
Author: Gregory W. Chicares <gchicares@sbcglobal.net>
Commit: Gregory W. Chicares <gchicares@sbcglobal.net>
Experimentally perform specamt strategies during solves
This may or may not be a good idea. It does seem reasonable enough to
ask for a premium solve optionally to set specamt to corridor. However,
it wouldn't be unreasonable to disallow specamt strategies that depend
on premium when premium is being solved for. This commit and the ones
immediately preceding it add considerable complexity, and might
introduce subtle defects. Is this worth the trouble?
---
ihs_acctval.cpp | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/ihs_acctval.cpp b/ihs_acctval.cpp
index 431fcbfc..22f88a16 100644
--- a/ihs_acctval.cpp
+++ b/ihs_acctval.cpp
@@ -407,6 +407,26 @@ void AccountValue::InitializeLife(mcenum_run_basis a_Basis)
// be called OAOO.
SetInitialValues();
+ if
+ ( Solving
+ && !SolvingForGuarPremium
+ && ( mce_solve_ee_prem == yare_input_.SolveType
+ || mce_solve_er_prem == yare_input_.SolveType
+ )
+ && mce_run_gen_curr_sep_full == RunBasis_
+ && ( contains(yare_input_.SpecifiedAmountStrategy, mce_sa_maximum)
+ || contains(yare_input_.SpecifiedAmountStrategy, mce_sa_target)
+ || contains(yare_input_.SpecifiedAmountStrategy, mce_sa_mep)
+ || contains(yare_input_.SpecifiedAmountStrategy, mce_sa_glp)
+ || contains(yare_input_.SpecifiedAmountStrategy, mce_sa_gsp)
+ || contains(yare_input_.SpecifiedAmountStrategy, mce_sa_corridor)
+ )
+ )
+ {
+ PerformSpecAmtStrategy(ignore_minimum);
+ PerformSupplAmtStrategy();
+ }
+
VariantValues().Init(*this, GenBasis_, SepBasis_);
InvariantValues().ReInit(this);